Guard dogs (#2143)

-adds guard dogs, mobs you can command around like the wizard's bear, with basic things like attack, stay and follow
-they have a verb that allows one player to become their master, and change their name, by being near them
-added the dogs to the random cargo spawn
This commit is contained in:
Alberyk
2017-05-02 21:53:58 +03:00
committed by skull132
parent c35762a801
commit 4748112358
6 changed files with 138 additions and 0 deletions
@@ -0,0 +1,120 @@
/mob/living/simple_animal/hostile/commanded/dog
name = "guard dog"
desc = "A dog trained to listen and obey its owner commands, this one is a german shepherd."
icon = 'icons/mob/dog.dmi'
icon_state = "german"
icon_living = "german"
icon_dead = "german_dead"
health = 75
maxHealth = 75
stop_automated_movement_when_pulled = 1 //so people can drag the dog around
density = 1
speak_chance = 1
turns_per_move = 7
see_in_dark = 6
speak = list("Woof!", "Bark!", "AUUUUUU!","AwooOOOoo!")
speak_emote = list("barks", "woofs")
emote_hear = list("barks", "woofs")
attacktext = "bitten"
attack_sound = 'sound/misc/dog_bark.ogg'
harm_intent_damage = 5
melee_damage_lower = 15
melee_damage_upper = 15
mob_size = 6
response_help = "pets"
response_harm = "hits"
response_disarm = "pushes"
hunger_enabled = 1 //so you can feed your dog or something
autoseek_food = 0
beg_for_food = 0
known_commands = list("stay", "stop", "attack", "follow")
var/name_changed = 0
/mob/living/simple_animal/hostile/commanded/dog/hit_with_weapon(obj/item/O, mob/living/user, var/effective_force, var/hit_zone)
. = ..()
if(!.)
src.emote("barks!")
/mob/living/simple_animal/hostile/commanded/dog/attack_hand(mob/living/carbon/human/M as mob)
..()
if(M.a_intent == I_HURT)
src.emote("barks!")
/mob/living/simple_animal/hostile/commanded/dog/verb/befriend()
set name = "Befriend Dog"
set category = "IC"
set src in view(1)
if(!master)
var/mob/living/carbon/human/H = usr
if(istype(H))
master = usr
. = 1
else if(usr == master)
. = 1 //already friends, but show success anyways
else
usr << "<span class='notice'>[src] ignores you.</span>"
return
/mob/living/simple_animal/hostile/commanded/dog/verb/change_name()
set name = "Name Dog"
set category = "IC"
set src in view(1)
var/mob/M = usr
if(!M.mind) return 0
if(!name_changed)
var/input = sanitizeSafe(input("What do you want to name the dog?", ,""), MAX_NAME_LEN)
if(src && input && !M.stat && in_range(M,src))
name = input
real_name = input
name_changed = 1
return 1
else
usr << "<span class='notice'>[src] already has a name!</span>"
return
/mob/living/simple_animal/hostile/commanded/dog/amaskan
desc = "A dog trained to listen and obey its owner commands, this one is an amaskan."
icon_state = "amaskan"
icon_living = "amaskan"
icon_dead = "amaskan_dead"
/mob/living/simple_animal/hostile/commanded/dog/pug
name = "pug"
desc = "A small dog with a wrinkly muzzle."
icon_state = "pug"
icon_living = "pug"
icon_dead = "pug_dead"
health = 25
maxHealth = 25
density = 0
mob_size = 5
harm_intent_damage = 5
melee_damage_lower = 5
melee_damage_upper = 5