mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Merge pull request #6989 from 9600bauds/funfactbutcheringpolygivescrackersinsteadofmeat
Fixes #6974 but also adds hella epik references
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
37
html/changelogs/96000bauds_overdue.yml
Normal file
37
html/changelogs/96000bauds_overdue.yml
Normal 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.
|
||||
Reference in New Issue
Block a user