Paste #47820: Arcane Forger

Date: 2018/06/10 21:20:45 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


"Arcane Forger":
    type: assignment
    interact scripts:
    - 10 Arcane Forger Forging
    actions:
        on assignment:
        - teleport npc <npc.anchor[badlucknpc]>
        - trigger name:proximity toggle:true
        - trigger name:chat toggle:true

"Arcane Forger Format":
    type: format
    format: "<dark_green>Arcane Forger<white><&co> <text>"

"Arcane Forger Forging":
    type: interact
    steps:
        "Player Seen*":
            proximity trigger:
                entry:
                    script:
                    - narrate "format:Arcane Forger Format" "Welcome, adventurer! I am a master of extracting magical energies and manipulating them for heroes like yourself. If you collect enough of these items on your adventures, I can help you harness this power."
                    - narrate "format:Arcane Forger Format" "The various services I can provide require different amounts of magical energy. Right click me to browse my offerings."
                exit:
                    script:
                    - narrate "format:Arcane Forger Format" "Good luck on your adventures! Visit me again when you need my help."
            click trigger:
                script:
                - narrate "format:Arcane Forger Format" "Okay, here's what I have to offer."
                - wait 1s
                - inventory open d:in@ArcaneForgerInventoryMenu
"ArcaneForgerInventoryMenu":
    type: inventory
    title: Arcane Forging
    size: 45
    slots:
    - "[] [] [] [] [] [] [] [] []"
    - "[] [] [] [i@VeteranToolForge] [] [i@VeteranWeaponForge] [] [] []"
    - "[] [] [] [] [] [] [] [] []"
    - "[] [] [] [i@EliteToolForge] [] [i@EliteWeaponForge] [] [] []"
    - "[] [] [] [] [] [] [] [] []"

"Veteran Token Placeholder":
    type: world
    events:
        on mm denizen mechanic:
            - give VeteranToken quantity:1 to:<context.caster.inventory>

VeteranToken:
    type: item
    material: bone[flags=li@HIDE_ENCHANTS;nbt=li@BadLuckToken/Veteran]
    display name: "<&9>Phantasmal Bones"
    lore:
    - "<&6>The bones of a powerful monster, slain by a hero. When held, you can still feel energy pouring out of them."
    enchantments:
    - MENDING:1

EliteToken:
    type: item
    material: bone[flags=li@HIDE_ENCHANTS;nbt=li@BadLuckToken/Elite]
    display name: "<&d>Elite Bones"
    lore:
    - "<&6>The bones of a very powerful monster, slain by a hero. They are, even still, infused with a large amount of magical energy."
    enchantments:
    - MENDING:1

"VeteranToolForge":
    type: item
    material: diamond_pickaxe[flags=li@HIDE_ATTRIBUTES|HIDE_ENCHANTS]
    display name: "<&9>Forge a Veteran Tool"
    lore:
    - "<&6>Requires <server.flag[VeteranToolForgeCost]> Phantasmal Bones and 1 Sliver of Crystallized Experience."
    enchantments:
    - MENDING:1

"VeteranWeaponForge":
    type: item
    material: diamond_sword[flags=li@HIDE_ATTRIBUTES|HIDE_ENCHANTS]
    display name: "<&9>Forge a Veteran Weapon"
    lore:
    - "<&6>Requires <server.flag[VeteranWeaponForgeCost]> Phantasmal Bones and 1 Sliver of Crystallized Experience."
    enchantments:
    - MENDING:1

"EliteToolForge":
    type: item
    material: diamond_pickaxe[flags=li@HIDE_ATTRIBUTES|HIDE_ENCHANTS]
    display name: "<&d>Forge an Elite Tool"
    lore:
    - "<&6>Requires <server.flag[EliteToolForgeCost]> Phantasmal Bones and 1 Chunk of Crystallized Experience."
    enchantments:
    - MENDING:1

"EliteWeaponForge":
    type: item
    material: diamond_sword[flags=li@HIDE_ATTRIBUTES|HIDE_ENCHANTS]
    display name: "<&d>Forge an Elite Weapon"
    lore:
    - "<&6>Requires <server.flag[EliteWeaponForgeCost]> Phantasmal Bones and 1 Chunk of Crystallized Experience."
    enchantments:
    - MENDING:1

"Arcane Forger Inventory Handler":
    type: world
    events:
        on server start:
        - flag server VeteranToolForgeCost:150
        - flag server VeteranWeaponForgeCost:200
        - flag server EliteToolForgeCost:900
        - flag server EliteWeaponForgeCost:1200
        on player clicks in ArcaneForgerInventoryMenu:
        - determine cancelled
        on player drags in ArcaneForgerInventoryMenu:
        - determine cancelled
        on player clicks VeteranToolForge in ArcaneForgerInventoryMenu:
        - inventory close d:in@ArcaneForgerInventoryMenu
#        - narrate "format:Arcane Forger Format" "You clicked the Veteran Tool Forge option!"
        - if <player.inventory.contains.scriptname[VeteranToken].quantity[<server.flag[VeteranToolForgeCost]>]> && <player.inventory.contains.scriptname[CrystallizedExperienceSliver].quantity[1]>
        {
#            - narrate "format:Arcane Forger Format" "You have enough bones for a special magic doodad!"
            - take scriptname:VeteranToken quantity:<server.flag[VeteranToolForgeCost]>
            - take scriptname:CrystallizedExperienceSliver quantity:1
            - random
            {
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive an Imbued Axe!"
                    - execute as_server "mm items give -s <player.name> ImbuedAxe"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive an Imbued Pickaxe!"
                    - execute as_server "mm items give -s <player.name> ImbuedPickaxe"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive an Imbued Shovel!"
                    - execute as_server "mm items give -s <player.name> ImbuedShovel"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive an Imbued Hoe!"
                    - execute as_server "mm items give -s <player.name> ImbuedHoe"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive an Imbued Fishing Rod!"
                    - execute as_server "mm items give -s <player.name> ImbuedFishingRod"
                }
            }
        }
        else
        {
            - narrate "format:Arcane Forger Format" "Sorry, you don't have enough for that!"
        }
        - narrate "format:Arcane Forger Format" "Right click me again if you'd like to choose another option!"
        on player clicks VeteranWeaponForge in ArcaneForgerInventoryMenu:
        - inventory close d:in@ArcaneForgerInventoryMenu
#        - narrate "format:Arcane Forger Format" "You clicked the Veteran Weapon Forge option!"
        - if <player.inventory.contains.scriptname[VeteranToken].quantity[<server.flag[VeteranWeaponForgeCost]>]> && <player.inventory.contains.scriptname[CrystallizedExperienceSliver].quantity[1]>
        {
#            - narrate "format:Arcane Forger Format" "You have enough bones for a special magic doodad!"
            - take scriptname:VeteranToken quantity:<server.flag[VeteranWeaponForgeCost]>
            - take scriptname:CrystallizedExperienceSliver quantity:1
            - random
            {
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive an Imbued Sword!"
                    - execute as_server "mm items give -s <player.name> ImbuedSword"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive an Imbued Shield!"
                    - execute as_server "mm items give -s <player.name> ImbuedShield"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive an Imbued Helm!"
                    - execute as_server "mm items give -s <player.name> ImbuedHelm"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive an Imbued Chestplate!"
                    - execute as_server "mm items give -s <player.name> ImbuedChest"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a pair of Imbued Leggings!"
                    - execute as_server "mm items give -s <player.name> ImbuedLegs"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a pair of Imbued Boots!"
                    - execute as_server "mm items give -s <player.name> ImbuedBoots"
                }
            }
        }
        else
        {
            - narrate "format:Arcane Forger Format" "Sorry, you don't have enough for that!"
        }
        - narrate "format:Arcane Forger Format" "Right click me again if you'd like to choose another option!"
        on player clicks EliteToolForge in ArcaneForgerInventoryMenu:
        - inventory close d:in@ArcaneForgerInventoryMenu
#        - narrate "format:Arcane Forger Format" "You clicked the Elite Tool Forge option!"
        - if <player.inventory.contains.scriptname[VeteranToken].quantity[<server.flag[EliteToolForgeCost]>]> && <player.inventory.contains.scriptname[CrystallizedExperienceChunk].quantity[1]>
        {
#            - narrate "format:Arcane Forger Format" "You have enough bones for a special magic doodad!"
            - take scriptname:VeteranToken quantity:<server.flag[EliteToolForgeCost]>
            - take scriptname:CrystallizedExperienceChunk quantity:1
            - random
            {
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a Burnished Axe!"
                    - execute as_server "mm items give -s <player.name> BurnishedAxe"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a Burnished Pickaxe!"
                    - execute as_server "mm items give -s <player.name> BurnishedPickaxe"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a Burnished Shovel!"
                    - execute as_server "mm items give -s <player.name> BurnishedShovel"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a Burnished Hoe!"
                    - execute as_server "mm items give -s <player.name> BurnishedHoe"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a Burnished Fishing Rod!"
                    - execute as_server "mm items give -s <player.name> BurnishedFishingRod"
                }
            }
        }
        else
        {
            - narrate "format:Arcane Forger Format" "Sorry, you don't have enough for that!"
        }
        - narrate "format:Arcane Forger Format" "Right click me again if you'd like to choose another option!"
        on player clicks EliteWeaponForge in ArcaneForgerInventoryMenu:
        - inventory close d:in@ArcaneForgerInventoryMenu
#        - narrate "format:Arcane Forger Format" "You clicked the Elite Weapon Forge option!"
        - if <player.inventory.contains.scriptname[VeteranToken].quantity[<server.flag[EliteWeaponForgeCost]>]> && <player.inventory.contains.scriptname[CrystallizedExperienceChunk].quantity[1]>
        {
#            - narrate "format:Arcane Forger Format" "You have enough bones for a special magic doodad!"
            - take scriptname:VeteranToken quantity:<server.flag[EliteWeaponForgeCost]>
            - take scriptname:CrystallizedExperienceChunk quantity:1
            - random
            {
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a Burnished Sword!"
                    - execute as_server "mm items give -s <player.name> BurnishedSword"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a Burnished Shield!"
                    - execute as_server "mm items give -s <player.name> BurnishedShield"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a Burnished Helm!"
                    - execute as_server "mm items give -s <player.name> BurnishedHelm"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a Burnished Chestplate!"
                    - execute as_server "mm items give -s <player.name> BurnishedChest"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a pair of Burnished Leggings!"
                    - execute as_server "mm items give -s <player.name> BurnishedLegs"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a pair of Burnished Boots!"
                    - execute as_server "mm items give -s <player.name> BurnishedBoots"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a Bountiful Blade!"
                    - execute as_server "mm items give -s <player.name> BountifulBlade"
                }
                - repeat 1
                {
                    - narrate "format:Arcane Forger Format" "The magics coalesce... and you receive a Withering Blade!"
                    - execute as_server "mm items give -s <player.name> WitheringBlade"
                }
            }
        }
        else
        {
            - narrate "format:Arcane Forger Format" "Sorry, you don't have enough for that!"
        }
        - narrate "format:Arcane Forger Format" "Right click me again if you'd like to choose another option!"