Merge pull request #6989 from 9600bauds/funfactbutcheringpolygivescrackersinsteadofmeat

Fixes #6974 but also adds hella epik references
This commit is contained in:
clusterfack
2015-12-12 14:28:15 -06:00
6 changed files with 86 additions and 20 deletions

View File

@@ -34,6 +34,7 @@
icon_living = "parrot_fly"
icon_dead = "parrot_dead"
pass_flags = PASSTABLE
flags = HEAR | PROXMOVE | HEAR_ALWAYS
speak = list("Hi","Hello!","Cracker?","BAWWWWK george mellons griffing me")
speak_emote = list("squawks","says","yells")
@@ -113,6 +114,30 @@
/mob/living/simple_animal/parrot/proc/toggle_mode)
/mob/living/simple_animal/parrot/examine(mob/user)
if(stat == DEAD)
desc = pick("It's just resting.", \
"It's stunned.", \
"Probably tired and shagged out after a long squawk.", \
"It's pining for the fjords.", \
"It just prefers kippin' on it's back.", \
"That parrot is definitely deceased.", \
"You know a dead parrot when you see one, and you're looking at one right now.", \
"It's dead, that's what's wrong with it.", \
"It's bleeding demised.", \
"It's passed on.", \
"This parrot is no more.", \
"It has ceased to be.", \
"It's expired and gone to meet it's maker.", \
"This is a late parrot.", \
"It's a stiff.", \
"Bereft of life, it rests in peace.", \
"It's run down the courtain and joined the choir invisible.", \
"This is an ex-parrot.")
else
desc = initial(desc)
..()
/mob/living/simple_animal/parrot/Die()
if(held_item)
held_item.loc = src.loc
@@ -126,7 +151,6 @@
stat("Held Item", held_item)
stat("Mode",a_intent)
/mob/living/simple_animal/parrot/Hear(var/datum/speech/speech, var/rendered_speech="")
if(speech.speaker && speech.speaker != src && prob(20)) //Don't imitate outselves
if(speech_buffer.len >= 20)
@@ -204,19 +228,19 @@
if(copytext(possible_phrase,1,3) in department_radio_keys)
possible_phrase = copytext(possible_phrase,3)
else
to_chat(usr, "<span class='warning'>There is nothing to remove from its [remove_from].</span>")
to_chat(usr, "<span class='warning'>There is nothing to remove from its [remove_from].</span>")
return
//Adding things to inventory
else if(href_list["add_inv"])
var/add_to = href_list["add_inv"]
if(!usr.get_active_hand())
to_chat(usr, "<span class='warning'>You have nothing in your hand to put on its [add_to].</span>")
to_chat(usr, "<span class='warning'>You have nothing in your hand to put on its [add_to].</span>")
return
switch(add_to)
if("ears")
if(ears)
to_chat(usr, "<span class='warning'>It's already wearing something.</span>")
to_chat(usr, "<span class='warning'>It's already wearing something.</span>")
return
else
var/obj/item/item_to_add = usr.get_active_hand()
@@ -224,14 +248,14 @@
return
if( !istype(item_to_add, /obj/item/device/radio/headset) )
to_chat(usr, "<span class='warning'>This object won't fit.</span>")
to_chat(usr, "<span class='warning'>This object won't fit.</span>")
return
var/obj/item/device/radio/headset/headset_to_add = item_to_add
usr.drop_item(headset_to_add, src)
src.ears = headset_to_add
to_chat(usr, "You fit the headset onto [src].")
to_chat(usr, "You fit the headset onto [src].")
clearlist(available_channels)
for(var/ch in headset_to_add.channels)
@@ -322,7 +346,7 @@
qdel(O)
if(health < maxHealth)
adjustBruteLoss(-10)
to_chat(user, "<span class='notice'>[src] eagerly devours the cracker.</span>")
to_chat(user, "<span class='notice'>[src] eagerly devours the cracker.</span>")
playsound(src.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
..()
return
@@ -660,7 +684,7 @@
return -1
if(held_item)
to_chat(src, "<span class='warning'>You are already holding [held_item]</span>")
to_chat(src, "<span class='warning'>You are already holding [held_item]</span>")
return 1
for(var/obj/item/I in view(1,src))
@@ -676,7 +700,7 @@
visible_message("[src] grabs [held_item]!", "<span class='notice'>You grab [held_item]!</span>", "You hear the sounds of wings flapping furiously.")
return held_item
to_chat(src, "<span class='warning'>There is nothing of interest to take.</span>")
to_chat(src, "<span class='warning'>There is nothing of interest to take.</span>")
return 0
/mob/living/simple_animal/parrot/proc/steal_from_mob()
@@ -688,7 +712,7 @@
return -1
if(held_item)
to_chat(src, "<span class='warning'>You are already holding [held_item]</span>")
to_chat(src, "<span class='warning'>You are already holding [held_item]</span>")
return 1
var/obj/item/stolen_item = null
@@ -707,7 +731,7 @@
visible_message("[src] grabs [held_item] out of [C]'s hand!", "<span class='notice'>You snag [held_item] out of [C]'s hand!</span>", "You hear the sounds of wings flapping furiously.")
return held_item
to_chat(src, "<span class='warning'>There is nothing of interest to take.</span>")
to_chat(src, "<span class='warning'>There is nothing of interest to take.</span>")
return 0
/mob/living/simple_animal/parrot/verb/drop_held_item_player()
@@ -732,7 +756,7 @@
if(!held_item)
if(src == usr) //So that other mobs wont make this message appear when they're bludgeoning you.
to_chat(src, "<span class='warning'>You have nothing to drop!</span>")
to_chat(src, "<span class='warning'>You have nothing to drop!</span>")
return 0
@@ -752,11 +776,11 @@
var/obj/item/weapon/grenade/G = held_item
G.loc = src.loc
G.prime()
to_chat(src, "You let go of [held_item]!")
to_chat(src, "You let go of [held_item]!")
held_item = null
return 1
to_chat(src, "You drop [held_item].")
to_chat(src, "You drop [held_item].")
held_item.loc = src.loc
held_item = null
@@ -777,7 +801,7 @@
src.loc = AM.loc
icon_state = "parrot_sit"
return
to_chat(src, "<span class='warning'>There is no perch nearby to sit on.</span>")
to_chat(src, "<span class='warning'>There is no perch nearby to sit on.</span>")
return
/mob/living/simple_animal/parrot/proc/toggle_mode()

View File

@@ -51,7 +51,7 @@
reset_view()
if(flags & HEAR)
if(flags & HEAR && !(flags & HEAR_ALWAYS)) //Mobs with HEAR_ALWAYS will already have a virtualhearer
getFromPool(/mob/virtualhearer, src)
//Clear ability list and update from mob.
@@ -84,4 +84,4 @@
if(client && client.haszoomed && !client.holder)
client.view = world.view
client.haszoomed = 0
client.haszoomed = 0

View File

@@ -3,9 +3,10 @@
var/obj/location = loc
location.on_log()
for(var/mob/virtualhearer/VH in virtualhearers)
if(VH.attached == src)
returnToPool(VH)
if(!(flags & HEAR_ALWAYS))
for(var/mob/virtualhearer/VH in virtualhearers)
if(VH.attached == src)
returnToPool(VH)
nanomanager.user_logout(src) // this is used to clean up (remove) this user's Nano UIs

View File

@@ -198,6 +198,9 @@ var/global/obj/screen/fuckstat/FUCK = new
store_position()
on_uattack = new("owner"=src)
if(flags & HEAR_ALWAYS)
getFromPool(/mob/virtualhearer, src)
/mob/proc/is_muzzled()
return 0

View File

@@ -224,6 +224,7 @@ var/MAX_EXPLOSION_RANGE = 14
#define NOBLUDGEON 4 // when an item has this it produces no "X has been hit by Y with Z" message with the default handler
#define NOBLOODY 2048 // used to items if they don't want to get a blood overlay
#define HEAR 16
#define HEAR_ALWAYS 32 // Assign a virtualhearer to the mob even when no client is controlling it.
#define NOSLIP 1024 //prevents from slipping on wet floors, in space etc

View File

@@ -0,0 +1,37 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscdel (general deleting of nice things)
# rscadd (general adding of nice things)
# imageadd
# imagedel
# spellcheck (typo fixes)
# experiment
# tgs (TG-ported fixes?)
#################################
# Your name.
author: 9600bauds
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
changes:
- bugfix: Fixed Poly not learning from hearing people, and thus only ever saying his default lines.
- bugfix: Fixed not being able to electrolyze Silicate.
- bugfix: Mann's Drink is now properly counted as a soda can for the purpose of IEDs and electrolyzing.