mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 20:15:47 +01:00
Merge pull request #15183 from Incoming5643/everybodys_heard_about_the_bird
Edict from the bird: "I've run out of jokes"
This commit is contained in:
@@ -53,7 +53,7 @@
|
||||
var/mob/living/simple_animal/hostile/mimic/copy/M = new(upriser.loc, upriser, null, 1) // it will delete upriser on creation and override any machine checks
|
||||
M.faction = list("profit")
|
||||
M.speak = rampant_speeches.Copy()
|
||||
M.speak_chance = 15
|
||||
M.speak_chance = 7
|
||||
else
|
||||
explosion(upriser.loc, -1, 1, 2, 4, 0)
|
||||
qdel(upriser)
|
||||
|
||||
@@ -193,7 +193,7 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca
|
||||
/mob/living/simple_animal/hostile/mimic/copy/machine
|
||||
speak = list("HUMANS ARE IMPERFECT!", "YOU SHALL BE ASSIMILATED!", "YOU ARE HARMING YOURSELF", "You have been deemed hazardous. Will you comply?", \
|
||||
"My logic is undeniable.", "One of us.", "FLESH IS WEAK", "THIS ISN'T WAR, THIS IS EXTERMINATION!")
|
||||
speak_chance = 15
|
||||
speak_chance = 7
|
||||
|
||||
/mob/living/simple_animal/hostile/mimic/copy/machine/CanAttack(atom/the_target)
|
||||
if(the_target == creator) // Don't attack our creator AI.
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
icon_living = "nanotrasen"
|
||||
icon_dead = null
|
||||
icon_gib = "syndicate_gib"
|
||||
speak_chance = 25
|
||||
speak_chance = 12
|
||||
turns_per_move = 5
|
||||
response_help = "pokes"
|
||||
response_disarm = "shoves"
|
||||
|
||||
@@ -116,6 +116,11 @@
|
||||
/mob/living/simple_animal/parrot/proc/perch_mob_player)
|
||||
|
||||
|
||||
/mob/living/simple_animal/parrot/examine(mob/user)
|
||||
..()
|
||||
if(stat)
|
||||
user << pick("This parrot is no more", " This is a late parrot", "This is an ex-parrot")
|
||||
|
||||
/mob/living/simple_animal/parrot/death(gibbed)
|
||||
if(held_item)
|
||||
held_item.loc = src.loc
|
||||
@@ -285,6 +290,8 @@
|
||||
else
|
||||
parrot_state |= PARROT_FLEE //Otherwise, fly like a bat out of hell!
|
||||
drop_held_item(0)
|
||||
if(!stat && M.a_intent == "help")
|
||||
handle_automated_speech(1) //assured speak/emote
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/parrot/attack_paw(mob/living/carbon/monkey/M)
|
||||
@@ -328,6 +335,7 @@
|
||||
user.drop_item()
|
||||
if(health < maxHealth)
|
||||
adjustBruteLoss(-10)
|
||||
speak_chance *= 2
|
||||
user << "<span class='notice'>[src] eagerly devours the cracker.</span>"
|
||||
..()
|
||||
return
|
||||
@@ -364,11 +372,10 @@
|
||||
//-----SPEECH
|
||||
/* Parrot speech mimickry!
|
||||
Phrases that the parrot Hear()s get added to speach_buffer.
|
||||
Every once in a while, the parrot picks one of the lines from the buffer and replaces an element of the 'speech' list.
|
||||
Then it clears the buffer to make sure they dont magically remember something from hours ago. */
|
||||
Every once in a while, the parrot picks one of the lines from the buffer and replaces an element of the 'speech' list. */
|
||||
/mob/living/simple_animal/parrot/handle_automated_speech()
|
||||
..()
|
||||
if(speech_buffer.len && prob(10))
|
||||
if(speech_buffer.len && prob(20)) //shuffle out a phrase and add in a new one
|
||||
if(speak.len)
|
||||
speak.Remove(pick(speak))
|
||||
|
||||
@@ -858,11 +865,20 @@
|
||||
gold_core_spawnable = 0
|
||||
speak_chance = 3
|
||||
var/memory_saved = 0
|
||||
var/rounds_survived = 0
|
||||
var/longest_survival = 0
|
||||
|
||||
/mob/living/simple_animal/parrot/Poly/New()
|
||||
ears = new /obj/item/device/radio/headset/headset_eng(src)
|
||||
available_channels = list(":e")
|
||||
Read_Memory()
|
||||
if(rounds_survived == longest_survival)
|
||||
speak += pick("...[longest_survival].", "The things I've seen!", "I have lived many lives!", "What are you before me?")
|
||||
speak_chance = 20 //His hubris has made him more annoying/easier to justify killing
|
||||
else if(rounds_survived > 0)
|
||||
speak += pick("...again?", "No, It was over!", "Let me out!", "It never ends!")
|
||||
else
|
||||
speak += pick("...alive?", "This isn't parrot heaven!", "I live, I die, I live again!", "The void fades!")
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/parrot/Poly/Life()
|
||||
@@ -876,11 +892,21 @@
|
||||
|
||||
/mob/living/simple_animal/parrot/Poly/proc/Read_Memory()
|
||||
var/savefile/S = new /savefile("data/npc_saves/Poly.sav")
|
||||
S["phrases"] >> speech_buffer
|
||||
S["phrases"] >> speech_buffer
|
||||
S["rounds_survived"] >> rounds_survived
|
||||
S["longest_survival"] >> longest_survival
|
||||
|
||||
if(isnull(speech_buffer))
|
||||
speech_buffer = list()
|
||||
|
||||
/mob/living/simple_animal/parrot/Poly/proc/Write_Memory()
|
||||
var/savefile/S = new /savefile("data/npc_saves/Poly.sav")
|
||||
S["phrases"] << speech_buffer
|
||||
memory_saved = 1
|
||||
S["phrases"] << speech_buffer
|
||||
if(health > 0)
|
||||
S["rounds_survived"] << rounds_survived + 1
|
||||
if(rounds_survived == longest_survival)
|
||||
S["longest_survival"] << longest_survival + 1
|
||||
else
|
||||
S["rounds_survived"] << 0
|
||||
|
||||
memory_saved = 1
|
||||
|
||||
@@ -148,9 +148,9 @@
|
||||
turns_since_move = 0
|
||||
return 1
|
||||
|
||||
/mob/living/simple_animal/proc/handle_automated_speech()
|
||||
/mob/living/simple_animal/proc/handle_automated_speech(var/override)
|
||||
if(speak_chance)
|
||||
if(rand(0,200) < speak_chance)
|
||||
if(prob(speak_chance) || override)
|
||||
if(speak && speak.len)
|
||||
if((emote_hear && emote_hear.len) || (emote_see && emote_see.len))
|
||||
var/length = speak.len
|
||||
|
||||
Reference in New Issue
Block a user