Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- A basic skeleton monster script you can copy and modify for your own creations.
- comments = {"Papyrus whispers \nNyeh heh heh!", "Papyrus is preparing a\rbone attack.","Smells like bones."}
- commands = {"Flirt", "Insult"}
- sprite = "papyrusempty" --Always PNG. Extension is added automatically.
- name = "Papyrus"
- hp = 650
- atk = 2
- def = 2
- check = "Likes to say\rNyeh heh heh."
- dialogbubble = "rightwide" -- See documentation for what bubbles you have available.
- canspare = false
- cancheck = true
- flirtcount = 0
- insultcount = 0
- -- Happens after the slash animation but before the shaking and hit sound.
- function HandleAttack(attackstatus)
- if attackstatus == -1 then
- -- player pressed fight but didn't press Z afterwards
- else
- -- player did actually attack
- if GetGlobal("battlephase", 0) then
- SwitchPhase()
- end
- end
- end
- function Devious()
- SetGlobal("SansHead", "papyrus/faces/angryhappy")
- end
- function Anxious()
- SetGlobal("SansHead", "papyrus/faces/anxious")
- end
- function Furious()
- SetGlobal("SansHead", "papyrus/faces/furious")
- end
- function Happy()
- SetGlobal("SansHead", "papyrus/faces/happy")
- end
- function Amazeboned()
- SetGlobal("SansHead", "papyrus/faces/kawaii")
- end
- function SetAnim(animation)
- SetGlobal("SansAnimation", animation)
- end
- function ResetSprite()
- SetGlobal("SansHead","papyrus/faces/normal")
- SetGlobal("SansAnimation", "normal")
- SetGlobal("SansAnimated", true)
- end
- function StopAnim()
- SetGlobal("SansAnimated", false)
- end
- function StartAnim()
- SetGlobal("SansAnimated", true)
- end
- -- This handles the commands; all-caps versions of the commands list you have above.
- function HandleCustomCommand(command)
- SetGlobal("inBattleBox", true)
- if command == "FLIRT" then
- if GetGlobal("battlephase") == 0 then
- if flirtcount == 0 then
- currentdialogue = {"[font:papyrus][effect:none][func:anxious]WHAT!?\nFL-FLIRTING?", "[font:papyrus][effect:none][func:happy]SO YOU FINALLY\nREVEAL YOUR\n[color:ff0000]ULTIMATE\nFEELINGS[color:000000]!", "[font:papyrus][effect:none][func:angry]W-WELL!\nI'M A SKELETON\nWITH VERY HIGH\nSTANDARDS!!!", "[func:angryhappy][next]"}
- BattleDialog({"You flirt with Papyrus."})
- flirtcount = flirtcount + 1
- elseif flirtcount == 1 then
- currentdialogue = {"[font:papyrus][effect:none]OH NO!!!\nYOU'RE MEETING\nALL MY STANDARDS", "[FONT:papyrus][effect:none]GUESS THAT MEANS\nI HAVE TO GO\nON A DATE THEN!?", "[font:papyrus]LET'S DATE L-LATER\nAFTER I CAPTURE\nYOU}
- BattleDialog({"You flirt with Papyrus.\r(again)"})
- flirtcount = flirtcount + 1
- else
- BattleDialog({"Papyrus is too busy FIGHTing to\rFLIRT back."})
- end
- elseif command == "INSULT" then
- if GetGlobal("battlephase") == 0 then
- if insultcount == 0 then
- currentdialogue = {"[effect:none][font:papyrus]HOW SELFLESS...\n YOU WANT ME TO\nFEEL BETTER ABOUT\nFIGHTING YOU...[w:10]"},{"[font:papyrus]I DONT DESERVE\nSUCH HOSPITATLITY\nFROM YOU..."}
- State("ENEMYDIALOGUE")
- elseif insultcount == 1 then
- BattleDialog({"You INSULT Papyrus again."})
- currentdialogue = {"[effect:none][font:papyrus]THERE'S NO NEED TO LIE\nTO YOURSELF!!!\nYOUR BARBS HIDE A\nHIDDEN AFFECTION!\nYOU EMOTIONAL CACTUS!"}
- else
- BattleDialog{("You INSULT, but to no avail.[w:10]\nSeems INSULTing wont escalate\rthis battle...")}
- currentdialogue = {"[effect:none][font:papyrus]DON'T WASTE YOUR WORDS\nON ME!"}
- end
- insultcount = insultcount + 1
- else
- BattleDialog({"Papyrus is too busy FIGHTing to\rINSULT back."})
- end
- if GetGlobal("trulyblue") then
- MakeBlue()
- end
- end
- function SwitchPhase()
- currentdialogue = {"[noskip][effect:none][font:papyrus]SO, YOU WANT\nTO DO THIS\nTHE HARD WAY...", "[noskip][effect:none][font:papyrus]THEN, LET'S SEE\nIF YOU CAN\nHANDLE MY \nFABLED\n'BLUE ATTACK!'"}
- SetGlobal("battlephase", 1)
- end
- function MakeBlue()
- SetGlobal("isBlue", true)
- blue = GetGlobal("blue")
- blue.MoveTo(Player.x, Player.y)
- end
- function OnDeath()
- Audio.Stop()
- SetGlobal("inBattleBox", true)
- currentdialogue = {"[noskip][effect:none][font:papyrus]...[w:15]ALAS,[w:2]\nPOOR PAPYRUS!", "[noskip][effect:none][font:papyrus]HE WAS TOO\nINNOCENT... [w:15]\nTOO COOL FOR \nTHIS WORLD!!!![w:90][func:Kill]"}
- State("ENEMYDIALOGUE")
- end
- function ResetSprite()
- SetSprite("papyrus")
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement