diff --git a/_maps/map_files/Delta/delta.dmm b/_maps/map_files/Delta/delta.dmm
index 1c7fca84edd..ba474ccc877 100644
--- a/_maps/map_files/Delta/delta.dmm
+++ b/_maps/map_files/Delta/delta.dmm
@@ -51452,7 +51452,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
-/mob/living/simple_animal/pet/fox/Renault,
+/mob/living/simple_animal/pet/dog/fox/Renault,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
index ea3d11be89e..30539064bef 100644
--- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
@@ -50014,7 +50014,7 @@
network = list("MiniSat","tcomm");
pixel_y = -29
},
-/mob/living/simple_animal/pet/fox/Renault,
+/mob/living/simple_animal/pet/dog/fox/Renault,
/turf/simulated/floor/carpet{
tag = "icon-carpetside";
icon_state = "carpetside"
diff --git a/_maps/map_files/MetaStation/z2.dmm b/_maps/map_files/MetaStation/z2.dmm
index e2ed24880f1..4dcf9a2797b 100644
--- a/_maps/map_files/MetaStation/z2.dmm
+++ b/_maps/map_files/MetaStation/z2.dmm
@@ -4552,7 +4552,7 @@
},
/area/syndicate_mothership)
"mE" = (
-/mob/living/simple_animal/pet/fox/Syndifox,
+/mob/living/simple_animal/pet/dog/fox/Syndifox,
/turf/unsimulated/floor{
icon_state = "bar";
dir = 2
diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index ec03d119758..16c46a85239 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -43480,7 +43480,7 @@
/turf/simulated/floor/carpet,
/area/crew_quarters/captain)
"bCQ" = (
-/mob/living/simple_animal/pet/fox/Renault,
+/mob/living/simple_animal/pet/dog/fox/Renault,
/turf/simulated/floor/carpet,
/area/crew_quarters/captain)
"bCR" = (
diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm
index 7c7b0403547..e84f90a3ee2 100644
--- a/_maps/map_files/cyberiad/z2.dmm
+++ b/_maps/map_files/cyberiad/z2.dmm
@@ -3226,7 +3226,7 @@
},
/area/syndicate_mothership)
"is" = (
-/mob/living/simple_animal/pet/fox/Syndifox,
+/mob/living/simple_animal/pet/dog/fox/Syndifox,
/turf/unsimulated/floor{
icon_state = "bar";
dir = 2
diff --git a/code/datums/diseases/lycancoughy.dm b/code/datums/diseases/lycancoughy.dm
index 0d4ace2e634..8a296df05ee 100644
--- a/code/datums/diseases/lycancoughy.dm
+++ b/code/datums/diseases/lycancoughy.dm
@@ -35,7 +35,7 @@
"You howl!")
affected_mob.AdjustConfused(rand(6, 8))
if(prob(3) && barklimit <= 10)
- var/list/puppytype = list(/mob/living/simple_animal/pet/dog/corgi/puppy, /mob/living/simple_animal/pet/dog/pug, /mob/living/simple_animal/pet/fox)
+ var/list/puppytype = list(/mob/living/simple_animal/pet/dog/corgi/puppy, /mob/living/simple_animal/pet/dog/pug, /mob/living/simple_animal/pet/dog/fox)
var/mob/living/puppypicked = pick(puppytype)
affected_mob.visible_message("[affected_mob] coughs up [initial(puppypicked.name)]!", \
"You cough up [initial(puppypicked.name)]?!")
diff --git a/code/game/objects/items/weapons/grenades/clusterbuster.dm b/code/game/objects/items/weapons/grenades/clusterbuster.dm
index 0d8f0aabd7d..8de1b1c6627 100644
--- a/code/game/objects/items/weapons/grenades/clusterbuster.dm
+++ b/code/game/objects/items/weapons/grenades/clusterbuster.dm
@@ -235,7 +235,7 @@
/obj/item/grenade/clusterbuster/fox
name = "Troublemaking Grenade"
desc = "More trouble than two foxes combined."
- payload = /mob/living/simple_animal/pet/fox
+ payload = /mob/living/simple_animal/pet/dog/fox
/obj/item/grenade/clusterbuster/crab
name = "Crab Grenade"
diff --git a/code/game/objects/structures/crates_lockers/crittercrate.dm b/code/game/objects/structures/crates_lockers/crittercrate.dm
index 18ee3833224..f1d58cd334a 100644
--- a/code/game/objects/structures/crates_lockers/crittercrate.dm
+++ b/code/game/objects/structures/crates_lockers/crittercrate.dm
@@ -79,7 +79,7 @@
/obj/structure/closet/critter/fox
name = "fox crate"
- content_mob = /mob/living/simple_animal/pet/fox
+ content_mob = /mob/living/simple_animal/pet/dog/fox
/obj/structure/closet/critter/butterfly
name = "butterflies crate"
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index c1d3764db3e..212d2e1b4dd 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -359,7 +359,6 @@
if("cat") M.change_mob_type( /mob/living/simple_animal/pet/cat , null, null, delmob, 1 )
if("runtime") M.change_mob_type( /mob/living/simple_animal/pet/cat/Runtime , null, null, delmob, 1 )
if("corgi") M.change_mob_type( /mob/living/simple_animal/pet/dog/corgi , null, null, delmob, 1 )
- if("ian") M.change_mob_type( /mob/living/simple_animal/pet/dog/corgi/Ian , null, null, delmob, 1 )
if("crab") M.change_mob_type( /mob/living/simple_animal/crab , null, null, delmob, 1 )
if("coffee") M.change_mob_type( /mob/living/simple_animal/crab/Coffee , null, null, delmob, 1 )
if("parrot") M.change_mob_type( /mob/living/simple_animal/parrot , null, null, delmob, 1 )
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index a31b399f428..b3d2a022648 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -245,6 +245,7 @@
D.flags |= NODROP
C.place_on_head(D)
C.name = "Detective Sax"
+ C.real_name = "Detective Sax"
C.visible_message("[C] suddenly winks into existence at [user]'s feet!")
to_chat(user, "[src] crumbles to dust in your hands!")
qdel(src)
diff --git a/code/modules/mob/living/simple_animal/friendly/corgi_powers.dm b/code/modules/mob/living/simple_animal/friendly/corgi_powers.dm
deleted file mode 100644
index e96d3cd9bd1..00000000000
--- a/code/modules/mob/living/simple_animal/friendly/corgi_powers.dm
+++ /dev/null
@@ -1,6 +0,0 @@
-/mob/living/simple_animal/pet/dog/corgi/verb/chasetail()
- set name = "Chase your tail"
- set desc = "d'awwww."
- set category = "Corgi"
- visible_message("[src] [pick("dances around","chases [p_their()] tail")].","[pick("You dance around","You chase your tail")].")
- spin(20, 1)
diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm
index 1456e2f70fb..dad78016f58 100644
--- a/code/modules/mob/living/simple_animal/friendly/crab.dm
+++ b/code/modules/mob/living/simple_animal/friendly/crab.dm
@@ -40,6 +40,7 @@
response_disarm = "gently pushes aside"
response_harm = "stomps"
gold_core_spawnable = CHEM_MOB_SPAWN_INVALID
+ unique_pet = TRUE
//LOOK AT THIS - ..()??
/*/mob/living/simple_animal/crab/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm
index 3d3f3c62ee2..caa8eece169 100644
--- a/code/modules/mob/living/simple_animal/friendly/dog.dm
+++ b/code/modules/mob/living/simple_animal/friendly/dog.dm
@@ -1,6 +1,10 @@
//Dogs.
/mob/living/simple_animal/pet/dog
+ name = "dog"
+ icon_state = "blackdog"
+ icon_living = "blackdog"
+ icon_dead = "blackdog_dead"
response_help = "pets"
response_disarm = "bops"
response_harm = "kicks"
@@ -12,10 +16,19 @@
see_in_dark = 5
speak_chance = 1
turns_per_move = 10
+ gold_core_spawnable = CHEM_MOB_SPAWN_FRIENDLY
var/bark_sound = list('sound/creatures/dog_bark1.ogg','sound/creatures/dog_bark2.ogg') //Used in emote.
var/yelp_sound = 'sound/creatures/dog_yelp.ogg' //Used on death.
var/last_eaten = 0
+/mob/living/simple_animal/pet/dog/verb/chasetail()
+ set name = "Chase your tail"
+ set desc = "d'awwww."
+ set category = "Dog"
+
+ visible_message("[src] [pick("dances around", "chases [p_their()] tail")].", "[pick("You dance around", "You chase your tail")].")
+ spin(20, 1)
+
/mob/living/simple_animal/pet/dog/death(gibbed)
// Only execute the below if we successfully died
. = ..(gibbed)
@@ -69,7 +82,7 @@
if(change)
if(change > 0)
if(M && stat != DEAD) // Added check to see if this mob (the corgi) is dead to fix issue 2454
- new /obj/effect/temp_visual/heart(src)
+ new /obj/effect/temp_visual/heart(loc)
custom_emote(1, "yaps happily!")
else
if(M && stat != DEAD) // Same check here, even though emote checks it as well (poor form to check it only in the help case)
diff --git a/code/modules/mob/living/simple_animal/friendly/fox.dm b/code/modules/mob/living/simple_animal/friendly/fox.dm
index 8918210af1a..7f1e4dcbccc 100644
--- a/code/modules/mob/living/simple_animal/friendly/fox.dm
+++ b/code/modules/mob/living/simple_animal/friendly/fox.dm
@@ -1,5 +1,5 @@
//Foxxy
-/mob/living/simple_animal/pet/fox
+/mob/living/simple_animal/pet/dog/fox
name = "fox"
desc = "It's a fox. I wonder what it says?"
icon_state = "fox"
@@ -20,14 +20,14 @@
gold_core_spawnable = CHEM_MOB_SPAWN_FRIENDLY
//Captain fox
-/mob/living/simple_animal/pet/fox/Renault
+/mob/living/simple_animal/pet/dog/fox/Renault
name = "Renault"
desc = "Renault, the Captain's trustworthy fox. I wonder what it says?"
unique_pet = TRUE
gold_core_spawnable = CHEM_MOB_SPAWN_INVALID
//Syndi fox
-/mob/living/simple_animal/pet/fox/Syndifox
+/mob/living/simple_animal/pet/dog/fox/Syndifox
name = "Syndifox"
desc = "Syndifox, the Syndicate's most respected mascot. I wonder what it says?"
icon_state = "Syndifox"
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index 020527c2083..ba54db9b415 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -185,7 +185,6 @@
qdel(t)
var/mob/living/simple_animal/pet/dog/corgi/new_corgi = new /mob/living/simple_animal/pet/dog/corgi (loc)
- new_corgi.a_intent = INTENT_HARM
new_corgi.key = key
to_chat(new_corgi, "You are now a Corgi. Yap Yap!")
@@ -288,9 +287,9 @@
if(ispath(MP, /mob/living/simple_animal/parrot))
return 1
if(!GAMEMODE_IS_NUCLEAR)
- if(ispath(MP, /mob/living/simple_animal/pet/fox/Syndifox))
+ if(ispath(MP, /mob/living/simple_animal/pet/dog/fox/Syndifox))
return 0
- if(ispath(MP, /mob/living/simple_animal/pet/fox))
+ if(ispath(MP, /mob/living/simple_animal/pet/dog/fox))
return 1
if(ispath(MP, /mob/living/simple_animal/chick))
return 1
diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm
index 338658eecce..4bf6c98fc50 100644
--- a/code/modules/projectiles/projectile/magic.dm
+++ b/code/modules/projectiles/projectile/magic.dm
@@ -248,7 +248,7 @@
if("lizard")
new_mob = new /mob/living/simple_animal/lizard(M.loc)
if("fox")
- new_mob = new /mob/living/simple_animal/pet/fox(M.loc)
+ new_mob = new /mob/living/simple_animal/pet/dog/fox(M.loc)
else
new_mob = new /mob/living/simple_animal/chick(M.loc)
new_mob.universal_speak = TRUE
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 4a2c844f94e..581f4983d03 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -620,7 +620,7 @@
/obj/item/relic/New()
icon_state = pick("shock_kit","armor-igniter-analyzer","infra-igniter0","infra-igniter1","radio-multitool","prox-radio1","radio-radio","timer-multitool0","radio-igniter-tank")
realName = "[pick("broken","twisted","spun","improved","silly","regular","badly made")] [pick("device","object","toy","suspicious tech","gear")]"
- floof = pick(/mob/living/simple_animal/pet/dog/corgi, /mob/living/simple_animal/pet/cat, /mob/living/simple_animal/pet/fox, /mob/living/simple_animal/mouse, /mob/living/simple_animal/pet/pug, /mob/living/simple_animal/lizard, /mob/living/simple_animal/diona, /mob/living/simple_animal/butterfly, /mob/living/carbon/human/monkey)
+ floof = pick(/mob/living/simple_animal/pet/dog/corgi, /mob/living/simple_animal/pet/cat, /mob/living/simple_animal/pet/dog/fox, /mob/living/simple_animal/mouse, /mob/living/simple_animal/pet/pug, /mob/living/simple_animal/lizard, /mob/living/simple_animal/diona, /mob/living/simple_animal/butterfly, /mob/living/carbon/human/monkey)
/obj/item/relic/proc/reveal()
@@ -677,7 +677,7 @@
to_chat(user, message)
var/animals = rand(1,25)
var/counter
- var/list/valid_animals = list(/mob/living/simple_animal/parrot,/mob/living/simple_animal/butterfly,/mob/living/simple_animal/pet/cat,/mob/living/simple_animal/pet/dog/corgi,/mob/living/simple_animal/crab,/mob/living/simple_animal/pet/fox,/mob/living/simple_animal/lizard,/mob/living/simple_animal/mouse,/mob/living/simple_animal/pet/pug,/mob/living/simple_animal/hostile/bear,/mob/living/simple_animal/hostile/poison/bees,/mob/living/simple_animal/hostile/carp)
+ var/list/valid_animals = list(/mob/living/simple_animal/parrot,/mob/living/simple_animal/butterfly,/mob/living/simple_animal/pet/cat,/mob/living/simple_animal/pet/dog/corgi,/mob/living/simple_animal/crab,/mob/living/simple_animal/pet/dog/fox,/mob/living/simple_animal/lizard,/mob/living/simple_animal/mouse,/mob/living/simple_animal/pet/pug,/mob/living/simple_animal/hostile/bear,/mob/living/simple_animal/hostile/poison/bees,/mob/living/simple_animal/hostile/carp)
for(counter = 1; counter < animals; counter++)
var/mobType = pick(valid_animals)
new mobType(get_turf(src))
diff --git a/paradise.dme b/paradise.dme
index 399c9fdde96..21d156ad2df 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1928,7 +1928,6 @@
#include "code\modules\mob\living\simple_animal\friendly\butterfly.dm"
#include "code\modules\mob\living\simple_animal\friendly\cat.dm"
#include "code\modules\mob\living\simple_animal\friendly\cockroach.dm"
-#include "code\modules\mob\living\simple_animal\friendly\corgi_powers.dm"
#include "code\modules\mob\living\simple_animal\friendly\crab.dm"
#include "code\modules\mob\living\simple_animal\friendly\deer.dm"
#include "code\modules\mob\living\simple_animal\friendly\diona.dm"