Paste #3138: Untitled Paste

Date: 2014/04/04 19:06:32 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


"Stonefellow":
  type: assignment

  default constants:
    durability_multiplier: 5
    enchantment_multiplier: 500

  interact scripts:
  - 10 SmithCheck

  actions:
    on assignment:
    - trigger name:chat toggle:true
    - trigger name:click toggle:true
    - trigger name:proximity toggle:true radius:2

    on enter proximity:
    - chat "<white>Hello<&cm> <player.name>. What can I do for you?"
    - narrate "<white> - I<&sq>d like an item <gold>repaired<white>."
    - narrate "<white> - I<&sq>d like to <gold>buy <white>smithing supplies"
    - narrate "<white> - I<&sq>d like to become a <gold>smith<white>."
    - if <p@player.jobs[<blacksmith>]> == null {
        - narrate "<white> - I<&sq>d like to become a <gold>smith<white>."
      }
    - narrate "<player.item_in_hand.durability>"

    on exit proximity:
    - zap 's@SmithCheck' step:default

"SmithCheck":
  type: interact
  steps:
    default:
      chat trigger:
        'Repair':
          trigger: "I<&sq>d like the have this /repair/ed."
          script:
            - chat "<white>Hmmm<&cm> let<&sq>s see..."
            - wait 1s
            - if <player.item_in_hand.repairable> == true {
                - inject s@CalcCost instantly
              } else {
                - chat "<white>Sorry<&cm> but I'm afraid I can<&sq>t repair that."
              }

            - if %repair_cost% > 0 {
                - chat "<white>Yeah<&cm> I can fix that. It<&sq>ll cost <gold><%repair_cost%> <white>coins to repair<&cm> though."
                - narrate "<gold>Yes <white>or <gold>No"
                - narrate ""
                - zap repair
              } else {
                - chat "<white>Your item looks fine to me!"
              }

        'Job':
          trigger: "I'd like to become a /smith/."
          script:
            - chat "<white>Great<&cm> we always need more smiths<white>. Would you like to join our brotherhood?"
            - narrate "<gold>Yes <white>or <gold>No"
            - zap job

    job:
      chat trigger:
        'Yes':
          trigger: "/Yes/<&cm> I would."
          script:
            - chat "<white>Great!"
            - jobs join blacksmith
            - chat "<white>Welcome to the brotherhood!"

        'No':
          trigger: "/No/<&cm> sorry."
          script:
            - chat "<white>Oh well. I<&sq>m sure you<&sq>ll find something that fits."

    repair:
      chat trigger:
        'Yes':
          trigger: "/Yes/<&cm> repair it."
          script:
            - if <player.money> OR_MORE <%repair_cost%> {
                - adjust <player.item_in_hand> durability:0 save:newitem
                - take iteminhand
                - playsound <player.location> sound:anvil_use
                - wait 3s
                - playsound <player.location> sound:anvil_use
                - wait 3s
                - playsound <player.location> sound:anvil_use
                - wait 3s
                - take money qty:<%repair_cost%>
                - give <entry[newitem].result>
                - chat "<white>Here you go! Come back if you need anymore repairs."
                - zap default
              } else {
                - chat "<white>Hey<&cm> you don't have enough money! Come back when you can afford it..."
                - zap default
              }

        'No':
          trigger: "/No/<&cm> I don<&sq>t want to repair it."
          script:
            - chat "<white>Well... alright. Come back if you change your mind."

"CalcCost":
  type: task
  script:
    - define durability_cost 0
    - define enchantment_levels 0
    - define enchantment_cost 0
    - define repair_cost 0

    - if <player.item_in_hand.durability> > 0 {
      - define durability_cost <player.item_in_hand.durability.mul[<s@script.constant[durability_multiplier]>]>
      - narrate "Durability Cost %durability_cost%"

      - if <player.item_in_hand.enchantments> != null {
          - foreach <player.item_in_hand.enchantments.levels> {
              - define enchantment_levels <def[enchantment_levels].add[%value%]>
              - narrate "Enchantment level %enchantment_levels%"
            }
          - define enchantment_levels <def[enchantment_levels].mul[<s@script.constant[enchantment_multiplier]>]>
          - narrate "Enchantment Cost %enchantment_levels%"
        }
      }

    - define repair_cost <def[repair_cost].add[%durability_cost%].add[%enchantment_cost%]>
    - narrate "Repair Cost %repair_cost%"