diff --git a/code/modules/mob/living/simple_animal/animals/fish.dm b/code/modules/mob/living/simple_animal/animals/fish.dm new file mode 100644 index 00000000000..88e0dc2e298 --- /dev/null +++ b/code/modules/mob/living/simple_animal/animals/fish.dm @@ -0,0 +1,73 @@ +// Different types of fish! They are all subtypes of this tho +/mob/living/simple_animal/fish + name = "fish" + desc = "Its a fishy. No touchy fishy." + icon = 'icons/mob/fish.dmi' + meat_type = /obj/item/weapon/reagent_containers/food/snacks + + // By defautl they can be in any water turf. Subtypes might restrict to deep/shallow etc + var/global/list/suitable_turf_types = list( + /turf/simulated/floor/beach/water, + /turf/simulated/floor/beach/coastline, + /turf/simulated/floor/holofloor/beach/water, + /turf/simulated/floor/holofloor/beach/coastline, + /turf/simulated/floor/water + ) + +// Don't swim out of the water +/mob/living/simple_animal/fish/handle_wander_movement() + if(isturf(src.loc) && !resting && !buckled && canmove) //Physically capable of moving? + lifes_since_move++ //Increment turns since move (turns are life() cycles) + if(lifes_since_move >= turns_per_move) + if(!(stop_when_pulled && pulledby)) //Some animals don't move when pulled + var/moving_to = 0 // otherwise it always picks 4, fuck if I know. Did I mention fuck BYOND + moving_to = pick(cardinal) + dir = moving_to //How about we turn them the direction they are moving, yay. + var/turf/T = get_step(src,moving_to) + if(T && is_type_in_list(T, suitable_turf_types)) + Move(T) + lifes_since_move = 0 + +// Take damage if we are not in water +/mob/living/simple_animal/fish/handle_breathing() + var/turf/T = get_turf(src) + if(T && !is_type_in_list(T, suitable_turf_types)) + if(prob(50)) + say(pick("Blub", "Glub", "Burble")) + adjustBruteLoss(unsuitable_atoms_damage) + +/mob/living/simple_animal/fish/bass + name = "bass" + icon_state = "bass-swim" + icon_living = "bass-swim" + icon_dead = "bass-dead" + +/mob/living/simple_animal/fish/trout + name = "trout" + icon_state = "trout-swim" + icon_living = "trout-swim" + icon_dead = "trout-dead" + +/mob/living/simple_animal/fish/salmon + name = "salmon" + icon_state = "salmon-swim" + icon_living = "salmon-swim" + icon_dead = "salmon-dead" + +/mob/living/simple_animal/fish/perch + name = "perch" + icon_state = "perch-swim" + icon_living = "perch-swim" + icon_dead = "perch-dead" + +/mob/living/simple_animal/fish/pike + name = "pike" + icon_state = "pike-swim" + icon_living = "pike-swim" + icon_dead = "pike-dead" + +/mob/living/simple_animal/fish/koi + name = "koi" + icon_state = "koi-swim" + icon_living = "koi-swim" + icon_dead = "koi-dead" diff --git a/icons/mob/fish.dmi b/icons/mob/fish.dmi new file mode 100644 index 00000000000..b665179cfef Binary files /dev/null and b/icons/mob/fish.dmi differ diff --git a/polaris.dme b/polaris.dme index aede069adf8..2fd1022631f 100644 --- a/polaris.dme +++ b/polaris.dme @@ -1695,6 +1695,7 @@ #include "code\modules\mob\living\simple_animal\animals\corgi.dm" #include "code\modules\mob\living\simple_animal\animals\crab.dm" #include "code\modules\mob\living\simple_animal\animals\farm_animals.dm" +#include "code\modules\mob\living\simple_animal\animals\fish.dm" #include "code\modules\mob\living\simple_animal\animals\giant_spider.dm" #include "code\modules\mob\living\simple_animal\animals\goose.dm" #include "code\modules\mob\living\simple_animal\animals\lizard.dm"