schnee mobs

This commit is contained in:
Cerebulon
2020-07-30 05:01:12 +01:00
parent 4452dfffd7
commit c55b759eb6
11 changed files with 354 additions and 9 deletions
+13
View File
@@ -33,7 +33,9 @@
prob(10);/mob/living/simple_mob/animal/passive/mouse,
prob(10);/mob/living/simple_mob/animal/passive/yithian,
prob(10);/mob/living/simple_mob/animal/passive/tindalos,
prob(10);/mob/living/simple_mob/animal/passive/pillbug,
prob(10);/mob/living/simple_mob/animal/passive/dog/tamaskan,
prob(10);/mob/living/simple_mob/animal/passive/dog/brittany,
prob(3);/mob/living/simple_mob/animal/passive/bird/parrot,
prob(1);/mob/living/simple_mob/animal/passive/crab)
@@ -69,10 +71,12 @@
/obj/random/mob/sif/item_to_spawn()
return pick(prob(30);/mob/living/simple_mob/animal/sif/diyaab,
prob(20);/mob/living/simple_mob/animal/passive/hare,
prob(15);/mob/living/simple_mob/animal/passive/crab,
prob(15);/mob/living/simple_mob/animal/passive/penguin,
prob(15);/mob/living/simple_mob/animal/passive/mouse,
prob(15);/mob/living/simple_mob/animal/passive/dog/tamaskan,
prob(10);/mob/living/simple_mob/animal/sif/siffet,
prob(2);/mob/living/simple_mob/animal/giant_spider/frost,
prob(1);/mob/living/simple_mob/animal/space/goose,
prob(20);/mob/living/simple_mob/animal/passive/crab)
@@ -88,6 +92,7 @@
/obj/random/mob/sif/peaceful/item_to_spawn()
return pick(prob(30);/mob/living/simple_mob/animal/sif/diyaab,
prob(20);/mob/living/simple_mob/animal/passive/hare,
prob(15);/mob/living/simple_mob/animal/passive/crab,
prob(15);/mob/living/simple_mob/animal/passive/penguin,
prob(15);/mob/living/simple_mob/animal/passive/mouse,
@@ -102,6 +107,8 @@
/obj/random/mob/sif/hostile/item_to_spawn()
return pick(prob(22);/mob/living/simple_mob/animal/sif/savik,
prob(33);/mob/living/simple_mob/animal/giant_spider/frost,
prob(20);/mob/living/simple_mob/animal/sif/frostfly,
prob(10);/mob/living/simple_mob/animal/sif/tymisian,
prob(45);/mob/living/simple_mob/animal/sif/shantak)
/obj/random/mob/sif/kururak
@@ -329,6 +336,12 @@
/mob/living/simple_mob/animal/sif/duck,
/mob/living/simple_mob/animal/sif/duck
),
prob(15);list(
/mob/living/simple_mob/animal/passive/hare,
/mob/living/simple_mob/animal/passive/hare,
/mob/living/simple_mob/animal/passive/hare,
/mob/living/simple_mob/animal/passive/hare
),
prob(10);list(
/mob/living/simple_mob/animal/sif/shantak/retaliate,
/mob/living/simple_mob/animal/sif/shantak/retaliate,
+7 -1
View File
@@ -34,4 +34,10 @@
/obj/item/weapon/reagent_containers/food/snacks/meat/corgi
name = "Corgi meat"
desc = "Tastes like... well, you know."
desc = "Tastes like... well, you know."
//Meat from Crabs
/obj/item/weapon/reagent_containers/food/snacks/meat/crab
name = "meat"
desc = "A chunk of meat."
icon_state = "crustacean-meat"
@@ -48,10 +48,3 @@
/mob/living/simple_mob/animal/passive/crab/sif/Initialize()
..()
adjust_scale(rand(5,12) / 10)
// Meat!
/obj/item/weapon/reagent_containers/food/snacks/meat/crab
name = "meat"
desc = "A chunk of 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,69 @@
// 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"
holder_type = /obj/item/weapon/holder/mouse
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")
@@ -0,0 +1,137 @@
//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. \
Frostflies utilize their vestigial wings as a method of dispersing a chemical that produces a rapid \
endothermic reaction on contact with the air, resulting in the flash-freezing of nearby materials. \
<br>\
Carnivorous in nature, they use their cryogenic compounds to trap smaller prey, or frighten predators. \
Individuals are known to slalom when facing other creatures, dispersing clouds of gas, and spitting \
condensed globs of the compound. These masses of mucous and ice seem to be intended to impede movement. \
<br>\
Travelers are advised to avoid frostfly swarms whenever possible, as they will become aggressive \
to anything other than Diyaabs, which they seem to have formed a tangential symbiosis with."
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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 280 KiB

After

Width:  |  Height:  |  Size: 293 KiB

+4
View File
@@ -2264,13 +2264,17 @@
#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\duck.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\frostfly.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\glitterfly.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\hare.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\hooligan_crab.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\kururak.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\leech.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\moth.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\pillbug.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\racoon.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\savik.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\shantak.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\sif.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\siffet.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\space\alien.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\space\bats.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\space\bear.dm"