Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions code/modules/mob/holder.dm
Original file line number Diff line number Diff line change
Expand Up @@ -190,3 +190,30 @@
name = "Ikit"
desc = "An albino rat with a tiny collar around it's neck, it must belong to someone. Hope it doesn't have some sort of genetically engineered disease or something..."
icon_state = "rat_white"

// Frog

/obj/item/holder/frog
name = "frog"
desc = "A small amphibian."
icon = 'icons/mob/animal.dmi'
icon_state = "frog_green"
item_state = "frog_green"
item_state_slots = list(WEAR_HEAD = "frog_green")
w_class = SIZE_TINY
flags_equip_slot = SLOT_EAR|SLOT_HEAD

/obj/item/holder/frog/green
icon_state = "frog_green"
item_state = "frog_green"
item_state_slots = list(WEAR_HEAD = "frog_green")

/obj/item/holder/frog/blue
icon_state = "frog_blue"
item_state = "frog_blue"
item_state_slots = list(WEAR_HEAD = "frog_blue")

/obj/item/holder/frog/brown
icon_state = "frog_brown"
item_state = "frog_brown"
item_state_slots = list(WEAR_HEAD = "frog_brown")
2 changes: 2 additions & 0 deletions code/modules/mob/living/simple_animal/bat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
speak = list("screech")
speak_emote = list("screeches")
emote_hear = list("screeches")
min_turns_per_move = 1
max_turns_per_move = 4

/mob/living/simple_animal/small/bat/Life(delta_time)
. = ..()
Expand Down
3 changes: 2 additions & 1 deletion code/modules/mob/living/simple_animal/friendly/bunny.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
emote_hear = list("purrs.", "hums.", "squeaks.")
emote_see = list("flaps their ears.", "sniffs.")
speak_chance = 1
turns_per_move = 5
min_turns_per_move = 1
max_turns_per_move = 3
meat_type = /obj/item/reagent_container/food/snacks/meat
response_help = "pets"
response_disarm = "gently pushes aside"
Expand Down
3 changes: 2 additions & 1 deletion code/modules/mob/living/simple_animal/friendly/cat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
emote_hear = list("meows.","mews.", "mrrps.")
emote_see = list("shakes their head.", "shivers.", "licks their paw.")
speak_chance = 1
turns_per_move = 5
min_turns_per_move = 4
max_turns_per_move = 10
meat_type = /obj/item/reagent_container/food/snacks/meat
response_help = "pets"
response_disarm = "gently pushes aside"
Expand Down
3 changes: 2 additions & 1 deletion code/modules/mob/living/simple_animal/friendly/corgi.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
emote_hear = list("barks.", "woofs.", "yaps.", "pants.")
emote_see = list("shakes its head.", "shivers.")
speak_chance = 1
turns_per_move = 10
min_turns_per_move = 2
max_turns_per_move = 6
holder_type = /obj/item/holder/corgi
meat_type = /obj/item/reagent_container/food/snacks/meat/corgi
meat_amount = 3
Expand Down
3 changes: 2 additions & 1 deletion code/modules/mob/living/simple_animal/friendly/crab.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
emote_hear = list("clicks.")
emote_see = list("clacks.")
speak_chance = 1
turns_per_move = 5
min_turns_per_move = 6
max_turns_per_move = 12
meat_type = /obj/item/reagent_container/food/snacks/meat
response_help = "pets the"
response_disarm = "gently pushes aside the"
Expand Down
12 changes: 8 additions & 4 deletions code/modules/mob/living/simple_animal/friendly/farm_animals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
emote_hear = list("bleats.")
emote_see = list("shakes its head.", "wiggles its tail.", "stamps a foot.", "glares around.")
speak_chance = 1
turns_per_move = 5
min_turns_per_move = 4
max_turns_per_move = 10
see_in_dark = 6
meat_type = /obj/item/reagent_container/food/snacks/meat
meat_amount = 4
Expand Down Expand Up @@ -80,7 +81,8 @@
emote_hear = list("moos.")
emote_see = list("shakes its head.", "flicks its ear", "swishes its tail.", "licks at its side.")
speak_chance = 1
turns_per_move = 5
min_turns_per_move = 10
max_turns_per_move = 18
see_in_dark = 6
meat_type = /obj/item/reagent_container/food/snacks/meat
meat_amount = 6
Expand Down Expand Up @@ -158,7 +160,8 @@
emote_hear = list("cheeps.")
emote_see = list("pecks at the ground.","flaps its tiny wings.", "scratches around with its foot, looking for scraps.")
speak_chance = 2
turns_per_move = 2
min_turns_per_move = 1
max_turns_per_move = 4
meat_type = /obj/item/reagent_container/food/snacks/meat
meat_amount = 1
response_help = "pets the"
Expand Down Expand Up @@ -198,7 +201,8 @@ GLOBAL_VAR_INIT(chicken_count, 0)
emote_hear = list("clucks.")
emote_see = list("pecks at the ground.","flaps its wings viciously.", "scratches around with its foot, looking for scraps.")
speak_chance = 2
turns_per_move = 3
min_turns_per_move = 2
max_turns_per_move = 6
meat_type = /obj/item/reagent_container/food/snacks/meat
meat_amount = 2
response_help = "pets the"
Expand Down
93 changes: 93 additions & 0 deletions code/modules/mob/living/simple_animal/friendly/frog.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
/mob/living/simple_animal/small/frog
name = "frog"
real_name = "frog"
desc = "A small amphibian."

holder_type = /obj/item/holder/frog

icon_state = "frog_green"
icon_living = "frog_green"
icon_dead = "frog_green_dead"

speak = list("Ribbit!","Croak!","Rrrrk!","Bworp!")
speak_emote = list("croaks", "ribbits", "warbles")
emote_hear = list("croaks softly.", "lets out a wet ribbit.", "gurgles.")
emote_see = list("blinks slowly.", "puffs its throat.", "sits very still.")

speak_chance = 1
min_turns_per_move = 2
max_turns_per_move = 6

see_in_dark = 6

response_help = "pets"
response_disarm = "pushes aside"
response_harm = "stomps"

var/croak_counter = 0

/mob/living/simple_animal/small/frog/Life(delta_time)
if(stat == DEAD)
return ..()

if(isturf(loc))
if(++croak_counter >= rand(10, 20))
croak_counter = 0
switch(rand(1, 5))
if(1)
playsound(loc, 'sound/effects/frog_1.ogg', 35, 1)
if(2)
playsound(loc, 'sound/effects/frog_2.ogg', 35, 1)
if(3)
playsound(loc, 'sound/effects/frog_3.ogg', 35, 1)
if(4)
playsound(loc, 'sound/effects/frog_4.ogg', 35, 1)
if(5)
playsound(loc, 'sound/effects/frog_5.ogg', 35, 1)

return ..()

/mob/living/simple_animal/small/frog/MouseDrop(atom/over_object)
if(!CAN_PICKUP(usr, src))
return ..()
var/mob/living/carbon/H = over_object
if(!istype(H) || !Adjacent(H) || H != usr)
return ..()

if(H.a_intent == INTENT_HELP)
get_scooped(H)
return
else
return ..()

/*
* frog types
*/

/mob/living/simple_animal/small/frog/blue
icon_state = "frog_blue"
holder_type = /obj/item/holder/frog/blue

/mob/living/simple_animal/small/frog/brown
icon_state = "frog_brown"
holder_type = /obj/item/holder/frog/brown

/mob/living/simple_animal/small/frog/random/Initialize()
. = ..()

switch(pick(1,2,3))
if(1)
icon_state = "frog_green"
icon_living = "frog_green"
icon_dead = "frog_green_dead"
holder_type = /obj/item/holder/frog/green
if(2)
icon_state = "frog_blue"
icon_living = "frog_blue"
icon_dead = "frog_blue_dead"
holder_type = /obj/item/holder/frog/blue
if(3)
icon_state = "frog_brown"
icon_living = "frog_brown"
icon_dead = "frog_brown_dead"
holder_type = /obj/item/holder/frog/brown
2 changes: 2 additions & 0 deletions code/modules/mob/living/simple_animal/friendly/lizard.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@
response_harm = "stomps on"
black_market_value = 50
dead_black_market_value = 0
min_turns_per_move = 5
max_turns_per_move = 10
3 changes: 2 additions & 1 deletion code/modules/mob/living/simple_animal/friendly/mouse.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
emote_see = list("runs in a circle.", "shakes.", "scritches at something.")
mob_size = MOB_SIZE_SMALL
speak_chance = 1
turns_per_move = 5
min_turns_per_move = 1
max_turns_per_move = 3
see_in_dark = 6
maxHealth = 5
health = 5
Expand Down
2 changes: 2 additions & 0 deletions code/modules/mob/living/simple_animal/friendly/rat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
health = 10
holder_type = /obj/item/holder/rat
icon_base = "rat"
min_turns_per_move = 2
max_turns_per_move = 5

/*
* Rat types
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

/mob/living/simple_animal/hostile/retaliate/giant_lizard/bortrough
name = "Bortrough"
desc = "A large, dangerous animal covered in thick skin. Its beady eyes lazily look in your direction. Best to leave this one alone."
icon = 'icons/mob/bortrough.dmi'
icon_state = "Bortrough Running"
icon_living = "Bortrough Running"
Expand Down
3 changes: 2 additions & 1 deletion code/modules/mob/living/simple_animal/parrot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@
emote_see = list("flutters its wings.", "clacks its beak.", "preens its feathers.", "pins its eyes.")

speak_chance = 1//1% (1 in 100) chance every tick; So about once per 150 seconds, assuming an average tick is 1.5s
turns_per_move = 5
min_turns_per_move = 2
max_turns_per_move = 6
meat_type = /obj/item/reagent_container/food/snacks/cracker

response_help = "pets the"
Expand Down
9 changes: 9 additions & 0 deletions code/modules/mob/living/simple_animal/simple_animal.dm
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@
///Unlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps.
var/list/emote_see = list()

///How many ticks before the animal moves. Can be overridden.
var/min_turns_per_move = 1
var/max_turns_per_move = 1

var/turns_per_move = 1
var/turns_since_move = 0
universal_speak = FALSE //No, just no.
Expand Down Expand Up @@ -80,6 +84,10 @@
. = ..()
SSmob.living_misc_mobs += src

// Randomize each simple mobs movement timer
turns_per_move = rand(min_turns_per_move, max_turns_per_move)
turns_since_move = rand(0, turns_per_move)

/mob/living/simple_animal/Destroy()
SSmob.living_misc_mobs -= src
return ..()
Expand Down Expand Up @@ -190,6 +198,7 @@
Move(get_step(src, move_dir ))
setDir(move_dir)
turns_since_move = 0
turns_per_move = rand(min_turns_per_move, max_turns_per_move)

//Speaking
if(!client && speak_chance)
Expand Down
3 changes: 2 additions & 1 deletion code/modules/mob/living/simple_animal/slug.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
response_disarm = "shoos"
response_harm = "stomps on"
speak_chance = 1
turns_per_move = 5
min_turns_per_move = 15
max_turns_per_move = 30
see_in_dark = 6
maxHealth = 5
health = 5
Expand Down
1 change: 1 addition & 0 deletions colonialmarines.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2319,6 +2319,7 @@
#include "code\modules\mob\living\simple_animal\friendly\corgi.dm"
#include "code\modules\mob\living\simple_animal\friendly\crab.dm"
#include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm"
#include "code\modules\mob\living\simple_animal\friendly\frog.dm"
#include "code\modules\mob\living\simple_animal\friendly\lizard.dm"
#include "code\modules\mob\living\simple_animal\friendly\mouse.dm"
#include "code\modules\mob\living\simple_animal\friendly\rat.dm"
Expand Down
Binary file modified icons/mob/animal.dmi
Binary file not shown.
Binary file modified icons/mob/humans/onmob/clothing/critters_shoulder.dmi
Binary file not shown.
Binary file modified icons/mob/humans/onmob/clothing/head/critters.dmi
Binary file not shown.
Binary file modified icons/mob/humans/onmob/inhands/items/critters_lefthand.dmi
Binary file not shown.
Binary file modified icons/mob/humans/onmob/inhands/items/critters_righthand.dmi
Binary file not shown.
Loading
Loading