Parrot fixes (#34934)

This commit is contained in:
ShizCalev
2018-01-26 12:20:58 -05:00
committed by CitadelStationBot
parent 57cfc1c81e
commit 1c38838793
+25 -13
View File
@@ -366,10 +366,14 @@
..()
//Sprite update for when a parrot gets pulled
if(pulledby && stat == CONSCIOUS)
if(pulledby && !stat && parrot_state != PARROT_WANDER)
if(buckled)
buckled.unbuckle_mob(src, TRUE)
buckled = null
icon_state = icon_living
if(!client)
parrot_state = PARROT_WANDER
parrot_state = PARROT_WANDER
pixel_x = initial(pixel_x)
pixel_y = initial(pixel_y)
return
@@ -801,10 +805,18 @@
if(istype(AM, perch_path))
src.forceMove(AM.loc)
icon_state = icon_sit
parrot_state = PARROT_PERCH
return
to_chat(src, "<span class='warning'>There is no perch nearby to sit on!</span>")
return
/mob/living/simple_animal/parrot/Moved(oldLoc, dir)
. = ..()
if(. && !stat && client && parrot_state == PARROT_PERCH)
parrot_state = PARROT_WANDER
icon_state = icon_living
pixel_x = initial(pixel_x)
pixel_y = initial(pixel_y)
/mob/living/simple_animal/parrot/proc/perch_mob_player()
set name = "Sit on Human's Shoulder"
@@ -814,7 +826,7 @@
if(stat || !client)
return
if(icon_state == icon_living)
if(!buckled)
for(var/mob/living/carbon/human/H in view(src,1))
if(H.has_buckled_mobs() && H.buckled_mobs.len >= H.max_buckled_mobs) //Already has a parrot, or is being eaten by a slime
continue
@@ -826,7 +838,7 @@
parrot_state = PARROT_WANDER
if(buckled)
to_chat(src, "<span class='notice'>You are no longer sitting on [buckled]'s shoulder.</span>")
buckled.unbuckle_mob(src,force=1)
buckled.unbuckle_mob(src, TRUE)
buckled = null
pixel_x = initial(pixel_x)
pixel_y = initial(pixel_y)
@@ -837,12 +849,12 @@
if(!H)
return
forceMove(get_turf(H))
H.buckle_mob(src, force=1)
pixel_y = 9
pixel_x = pick(-8,8) //pick left or right shoulder
icon_state = icon_sit
parrot_state = PARROT_PERCH
to_chat(src, "<span class='notice'>You sit on [H]'s shoulder.</span>")
if(H.buckle_mob(src, TRUE))
pixel_y = 9
pixel_x = pick(-8,8) //pick left or right shoulder
icon_state = icon_sit
parrot_state = PARROT_PERCH
to_chat(src, "<span class='notice'>You sit on [H]'s shoulder.</span>")
/mob/living/simple_animal/parrot/proc/toggle_mode()
@@ -853,13 +865,13 @@
if(stat || !client)
return
if(melee_damage_upper)
if(a_intent != INTENT_HELP)
melee_damage_upper = 0
a_intent = INTENT_HELP
else
melee_damage_upper = parrot_damage_upper
a_intent = INTENT_HARM
to_chat(src, "You will now [a_intent] others...")
to_chat(src, "You will now [a_intent] others.")
return
/*