mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-06 07:22:42 +00:00
Merge pull request #7390 from Cerebulon/schneemobs
Adds some surface mobs.
This commit is contained in:
@@ -54,4 +54,4 @@
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/crab
|
||||
name = "meat"
|
||||
desc = "A chunk of meat."
|
||||
icon_state = "crustacean-meat"
|
||||
icon_state = "crustacean-meat"
|
||||
@@ -231,4 +231,14 @@
|
||||
name = "Spice"
|
||||
real_name = "Spice" //Intended to hold the name without altering it.
|
||||
gender = FEMALE
|
||||
desc = "It's a tamaskan, the name Spice can be found on its collar."
|
||||
desc = "It's a tamaskan, the name Spice can be found on its collar."
|
||||
|
||||
// Brittany Spaniel
|
||||
|
||||
/mob/living/simple_mob/animal/passive/dog/brittany
|
||||
name = "brittany"
|
||||
real_name = "brittany"
|
||||
desc = "It's a brittany spaniel."
|
||||
icon_state = "brittany"
|
||||
icon_living = "brittany"
|
||||
icon_dead = "brittany_dead"
|
||||
@@ -167,3 +167,4 @@
|
||||
holder.face_atom(A)
|
||||
|
||||
F.energy = max(0, F.energy - 1) // The AI will eventually flee.
|
||||
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
// Complete chumps but a little bit hardier than mice.
|
||||
|
||||
/datum/category_item/catalogue/fauna/hare
|
||||
name = "Sivian Fauna - Ice Hare"
|
||||
desc = "Classification: S Lepus petropellis\
|
||||
<br><br>\
|
||||
Hard-skinned, horned herbivores common on the glacial regions of Sif. \
|
||||
The Ice Hare lives in colonies of up to thirty individuals dug beneath thick ice sheets for protection from many burrowing predators. \
|
||||
Their diet consists of mostly moss and lichens, though this is supplemented with the consumption of hard mineral pebbles, which it swallows whole, \
|
||||
which form the small, hard, 'ice-like' scales of the animal. \
|
||||
The Ice Hare is almost completely harmless to sapients, with relatively blunt claws and a weak jaw. Its main forms of self-defense are its speed, \
|
||||
and two sharp head spikes whose 'ear-like' appearance gave the species its common name."
|
||||
value = CATALOGUER_REWARD_EASY
|
||||
|
||||
/mob/living/simple_mob/animal/passive/hare
|
||||
name = "ice hare"
|
||||
real_name = "ice hare"
|
||||
desc = "A small horned herbivore with a tough 'ice-like' hide."
|
||||
tt_desc = "S Lepus petropellis" //Sivian hare rockskin
|
||||
catalogue_data = list(/datum/category_item/catalogue/fauna/hare)
|
||||
|
||||
icon_state = "hare"
|
||||
icon_living = "hare"
|
||||
icon_dead = "hare_dead"
|
||||
icon_rest = "hare_rest"
|
||||
|
||||
maxHealth = 20
|
||||
health = 20
|
||||
|
||||
armor = list(
|
||||
"melee" = 30,
|
||||
"bullet" = 5,
|
||||
"laser" = 5,
|
||||
"energy" = 0,
|
||||
"bomb" = 10,
|
||||
"bio" = 0,
|
||||
"rad" = 0
|
||||
)
|
||||
|
||||
armor_soak = list(
|
||||
"melee" = 5,
|
||||
"bullet" = 0,
|
||||
"laser" = 0,
|
||||
"energy" = 0,
|
||||
"bomb" = 0,
|
||||
"bio" = 0,
|
||||
"rad" = 0
|
||||
)
|
||||
|
||||
movement_cooldown = 2
|
||||
|
||||
mob_size = MOB_SMALL
|
||||
pass_flags = PASSTABLE
|
||||
layer = MOB_LAYER
|
||||
density = 0
|
||||
|
||||
response_help = "pets"
|
||||
response_disarm = "nudges"
|
||||
response_harm = "kicks"
|
||||
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
|
||||
say_list_type = /datum/say_list/hare
|
||||
|
||||
/datum/say_list/hare
|
||||
speak = list("Snrf...","Crk!")
|
||||
emote_hear = list("crackles","sniffles")
|
||||
emote_see = list("stomps the ground", "sniffs the air", "chews on something")
|
||||
143
code/modules/mob/living/simple_mob/subtypes/animal/sif/moth.dm
Normal file
143
code/modules/mob/living/simple_mob/subtypes/animal/sif/moth.dm
Normal file
@@ -0,0 +1,143 @@
|
||||
//Very similar to frostflies, but with a non-lethal gas and less damaging, but less easy to protect from, projectiles.
|
||||
|
||||
/datum/category_item/catalogue/fauna/tymisian
|
||||
name = "Binman Fauna - Tymisian Moth"
|
||||
desc = "Classification: B Carabidae glacios \
|
||||
<br><br>\
|
||||
A meter-long fuzzy insect from the planet Binma. \
|
||||
A native of the Binman contintents of Telarus and Dalomee, the Tymisian Moth usually lives in communal \
|
||||
groups of upwards of thirty individuals, known as 'spuzzes', and typically breeds up to three times in its \
|
||||
fifteen year natural lifespan. \
|
||||
<br>\
|
||||
Though strictly herbivorous, the moth has an acute sense of smell which it uses to detect potential predators. \
|
||||
Impressively, the moth secretes an oily substance which it uses to coat collected material stored in 'soft pockets' \
|
||||
beneath each wing, which in turn attracts colonies of pungent bacteria. \
|
||||
When threatened, the moth will release this dust, which has a disorienting effect on most Binman species, as well as all known sapients. \
|
||||
<br>\
|
||||
The Tymisian Moth is considered an invasive species on Sif, and is believed to have been established from an illegally \
|
||||
released pet collection. Though less dangerous than in its native environment, the moth has nonetheless established a \
|
||||
similar symbiotic relationship with Sivian bacteria for its defense mechanism, and is still to be considered quite dangerous. \
|
||||
<br>\
|
||||
As an invasive species, individuals encountering the Tymisian Moth on Sif are requested to report the sighting to local wildlife \
|
||||
services, and remove or destroy the creature if it is safe to do so."
|
||||
value = CATALOGUER_REWARD_MEDIUM
|
||||
|
||||
/mob/living/simple_mob/animal/sif/tymisian
|
||||
name = "Tymisian Moth"
|
||||
desc = "A huge, fuzzy insect with a disorienting dust."
|
||||
tt_desc = "B Lepidoptera cinereus"
|
||||
catalogue_data = list(/datum/category_item/catalogue/fauna/tymisian)
|
||||
|
||||
faction = "spiders" //Hostile to most mobs, not all.
|
||||
|
||||
icon_state = "moth"
|
||||
icon_living = "moth"
|
||||
icon_dead = "moth_dead"
|
||||
icon_rest = "moth_dead"
|
||||
icon = 'icons/mob/animal.dmi'
|
||||
|
||||
maxHealth = 80
|
||||
health = 80
|
||||
|
||||
hovering = TRUE
|
||||
|
||||
movement_cooldown = 0.5
|
||||
|
||||
melee_damage_lower = 5
|
||||
melee_damage_upper = 10
|
||||
base_attack_cooldown = 1.5 SECONDS
|
||||
attacktext = list("nipped", "bit", "pinched")
|
||||
|
||||
projectiletype = /obj/item/projectile/energy/blob
|
||||
|
||||
special_attack_cooldown = 10 SECONDS
|
||||
special_attack_min_range = 0
|
||||
special_attack_max_range = 6
|
||||
|
||||
var/energy = 100
|
||||
var/max_energy = 100
|
||||
|
||||
var/datum/effect/effect/system/smoke_spread/mothspore/smoke_spore
|
||||
|
||||
say_list_type = /datum/say_list/tymisian
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/ranged/kiting/threatening/frostfly //Uses frostfly AI, since so similar mechanically
|
||||
|
||||
/datum/say_list/tymisian
|
||||
speak = list("Zzzz.", "Rrr...", "Zzt?")
|
||||
emote_see = list("grooms itself","sprinkles dust from its wings", "rubs its mandibles")
|
||||
emote_hear = list("chitters", "clicks", "rattles")
|
||||
|
||||
say_understood = list("Ssst.")
|
||||
say_cannot = list("Zzrt.")
|
||||
say_maybe_target = list("Rr?")
|
||||
say_got_target = list("Rrrrt!")
|
||||
say_threaten = list("Kszsz.","Kszzt...","Kzzi!")
|
||||
say_stand_down = list("Sss.","Zt.","! clicks.")
|
||||
say_escalate = list("Rszt!")
|
||||
|
||||
threaten_sound = 'sound/effects/spray3.ogg'
|
||||
stand_down_sound = 'sound/effects/squelch1.ogg'
|
||||
|
||||
|
||||
/obj/effect/effect/smoke/elemental/mothspore
|
||||
name = "spore cloud"
|
||||
desc = "A dust cloud filled with disorienting bacterial spores."
|
||||
color = "#80AB82"
|
||||
|
||||
/obj/effect/effect/smoke/elemental/mothspore/affect(mob/living/L) //Similar to a very weak flash, but depends on breathing instead of eye protection.
|
||||
if(iscarbon(L))
|
||||
var/mob/living/carbon/C = L
|
||||
if(C.stat != DEAD)
|
||||
if(C.needs_to_breathe())
|
||||
var/spore_strength = 5
|
||||
if(ishuman(C))
|
||||
var/mob/living/carbon/human/H = C
|
||||
H.Confuse(spore_strength)
|
||||
H.eye_blurry = max(H.eye_blurry, spore_strength)
|
||||
H.adjustHalLoss(10 * (spore_strength / 5))
|
||||
|
||||
/datum/effect/effect/system/smoke_spread/mothspore
|
||||
smoke_type = /obj/effect/effect/smoke/elemental/mothspore
|
||||
|
||||
/mob/living/simple_mob/animal/sif/tymisian/do_special_attack(atom/A)
|
||||
. = TRUE
|
||||
switch(a_intent)
|
||||
if(I_DISARM)
|
||||
if(energy < 20)
|
||||
return FALSE
|
||||
|
||||
energy -= 20
|
||||
|
||||
if(smoke_spore)
|
||||
smoke_spore.set_up(7,0,src)
|
||||
smoke_spore.start()
|
||||
return TRUE
|
||||
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_mob/animal/sif/tymisian/Initialize()
|
||||
..()
|
||||
smoke_spore = new
|
||||
verbs += /mob/living/proc/ventcrawl
|
||||
verbs += /mob/living/proc/hide
|
||||
|
||||
/mob/living/simple_mob/animal/sif/tymisian/handle_special()
|
||||
..()
|
||||
|
||||
if(energy < max_energy)
|
||||
energy++
|
||||
|
||||
/mob/living/simple_mob/animal/sif/tymisian/Stat()
|
||||
..()
|
||||
if(client.statpanel == "Status")
|
||||
statpanel("Status")
|
||||
if(emergency_shuttle)
|
||||
var/eta_status = emergency_shuttle.get_status_panel_eta()
|
||||
if(eta_status)
|
||||
stat(null, eta_status)
|
||||
stat("Energy", energy)
|
||||
|
||||
/mob/living/simple_mob/animal/sif/tymisian/should_special_attack(atom/A)
|
||||
if(energy >= 20)
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -0,0 +1,51 @@
|
||||
/datum/category_item/catalogue/fauna/pillbug
|
||||
name = "Sivian Fauna - Fire Bug"
|
||||
desc = "Classification: S Armadillidiidae calidi \
|
||||
<br><br>\
|
||||
A 10 inch long, hard-shelled insect with a natural adaption to living around terrestrial lava vents. \
|
||||
The fire bug's hard shell offers extremely effective protection against most threats, \
|
||||
though the species is almost completely docile, and will prefer to continue grazing on its diet of volcanic micro-flora \
|
||||
rather than defend itself in most situations.\
|
||||
<br>\
|
||||
The fire bug is a curiosity to most on the frontier, offering little in the way of meaningful food or resources, \
|
||||
though at least one Sivian fashion designer has used their iridescent red shells to create striking, hand-made garments."
|
||||
value = CATALOGUER_REWARD_EASY
|
||||
|
||||
/mob/living/simple_mob/animal/passive/pillbug
|
||||
name = "fire bug"
|
||||
desc = "A tiny plated bug found in Sif's volcanic regions."
|
||||
tt_desc = "S Armadillidiidae calidi"
|
||||
catalogue_data = list(/datum/category_item/catalogue/fauna/pillbug)
|
||||
|
||||
icon_state = "pillbug"
|
||||
icon_living = "pillbug"
|
||||
icon_dead = "pillbug_dead"
|
||||
|
||||
health = 15
|
||||
maxHealth = 15
|
||||
mob_size = MOB_MINISCULE
|
||||
|
||||
response_help = "gently touches"
|
||||
response_disarm = "rolls over"
|
||||
response_harm = "stomps on"
|
||||
|
||||
armor = list(
|
||||
"melee" = 30,
|
||||
"bullet" = 10,
|
||||
"laser" = 50,
|
||||
"energy" = 50,
|
||||
"bomb" = 30,
|
||||
"bio" = 100,
|
||||
"rad" = 100
|
||||
)
|
||||
|
||||
// The frostfly's body is incredibly cold at all times, natural resistance to things trying to burn it.
|
||||
armor_soak = list(
|
||||
"melee" = 10,
|
||||
"bullet" = 0,
|
||||
"laser" = 10,
|
||||
"energy" = 10,
|
||||
"bomb" = 0,
|
||||
"bio" = 0,
|
||||
"rad" = 0
|
||||
)
|
||||
@@ -0,0 +1,61 @@
|
||||
// Somewhere between a fox and a weasel. Doesn't mess with stuff significantly bigger than it, but you don't want to get on its bad side.
|
||||
|
||||
/datum/category_item/catalogue/fauna/siffet
|
||||
name = "Sivian Fauna - Siffet"
|
||||
desc = "Classification: S Pruinaeictis velocis\
|
||||
<br><br>\
|
||||
The Siffet, or Sivian Frost Weasel is a small, solitary predator known for its striking ability to take down prey up to twice their size. \
|
||||
The majority of the Siffet's adult life is spent in isolation, prowling large territories in Sif's tundra regions, \
|
||||
only seeking out other individuals during the summer mating season, when deadly battles for dominance are common. \
|
||||
Though mostly docile towards adult humans and other large sapients, the Siffet has been known to target children and smaller species as prey, \
|
||||
and a provoked Siffet can be a danger to even the most experienced handler due to its quick movement and surprisingly powerful jaws. \
|
||||
The Siffet is sometimes hunted for its remarkably soft pelt, though most is obtained through fur farming."
|
||||
value = CATALOGUER_REWARD_MEDIUM
|
||||
|
||||
/mob/living/simple_mob/animal/sif/siffet
|
||||
name = "siffet"
|
||||
desc = "A small, solitary predator with silky fur. Despite its size, the Siffet is ferocious when provoked."
|
||||
tt_desc = "S Pruinaeictis velocis" //Sivian frost weasel, fast
|
||||
catalogue_data = list(/datum/category_item/catalogue/fauna/siffet)
|
||||
|
||||
faction = "siffet"
|
||||
|
||||
mob_size = MOB_SMALL
|
||||
|
||||
icon_state = "siffet"
|
||||
icon_living = "siffet"
|
||||
icon_dead = "siffet_dead"
|
||||
icon = 'icons/mob/animal.dmi'
|
||||
|
||||
maxHealth = 60
|
||||
health = 60
|
||||
|
||||
movement_cooldown = 0
|
||||
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 15
|
||||
base_attack_cooldown = 1 SECOND
|
||||
attack_sharp = 1
|
||||
attacktext = list("sliced", "snapped", "gnawed")
|
||||
|
||||
say_list_type = /datum/say_list/siffet
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/siffet
|
||||
|
||||
/datum/say_list/siffet
|
||||
speak = list("Yap!", "Heh!", "Huff.")
|
||||
emote_see = list("sniffs its surroundings","flicks its ears", "scratches the ground")
|
||||
emote_hear = list("chatters", "huffs")
|
||||
|
||||
/datum/ai_holder/simple_mob/siffet
|
||||
hostile = TRUE
|
||||
retaliate = TRUE
|
||||
|
||||
/datum/ai_holder/simple_mob/siffet/post_melee_attack(atom/A) //Evasive
|
||||
if(holder.Adjacent(A))
|
||||
holder.IMove(get_step(holder, pick(alldirs)))
|
||||
holder.face_atom(A)
|
||||
|
||||
/mob/living/simple_mob/animal/sif/siffet/IIsAlly(mob/living/L)
|
||||
. = ..()
|
||||
if(!. && L.mob_size > 10) //Attacks things it considers small enough to take on, otherwise only attacks if attacked.
|
||||
return TRUE
|
||||
Reference in New Issue
Block a user