Paste #17036: RPGear

Date: 2015/06/27 18:28:04 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


Lore:  
    type: world  
    debug: true 
    events:  
        on script reload: 
            - flag global strenght_id:Strenght
            - flag global balance_id:Balance
            - flag global balance_values:li@terrible|poor|fair|good|excelent
            - flag global protection_id:Protection
            - flag global weight_id:Weight
            - flag global balance_values:li@nimble|light|moderate|heavy|ponderous

        on player holds item:
            - if <player.inventory.slot[<context.new_slot>].lore.is_empty||true> {
                - flag player strenght:2
                - flag player balance:0.9
                }
            else {
                - foreach <player.inventory.slot[<context.new_slot>].lore> {
                    - if <def[value].starts_with[<server.flag[strenght_id]>]> {
                        - flag player strenght:<def[value].replace[<server.flag[strenght_id]>:<&sp>]>
                        }
                    else if <def[value].starts_with[<server.flag[balance_id]>]> {
                        - define balance_value <def[value].replace[<server.flag[balance_id]>:<&sp>]>
                        - foreach <server.flag[balance_values]> {
                            - if <def[value].is[==].to[<def[balance_value]>]> {
                                - flag player balance:<def[loop_index].sub[0.5].div[5]>
                                }
                            }
                        }
                    }
                }
            - narrate "<player.flag[strenght]> and <player.flag[balance]>"

        on player damages entity:
            - define damage <util.random.decimal[<player.flag[strenght].mul[<player.flag[balance]>]>].to[<player.flag[strenght]>]>
            - narrate "You struck your opponent for <def[damage]> points of damage."
            - determine <def[damage]>

        on player equips armor:
            - if <context.armor.lore.is_empty||true> {
                - flag player protection:<player.flag[protection].add[0]>
                - flag player weight:<player.flag[weight].add[0]>
                }
            else {
                - foreach <context.armor.lore> {
                    - if <def[value].starts_with[<server.flag[protection_id]>]> {
                        - flag player protection:<player.flag[protection].add[def[value].replace[<server.flag[protection_id]>:<&sp>]]>
                        }
                    else if <def[value].starts_with[<server.flag[weight_id]>]> {
                        - define balance_value <def[value].replace[<server.flag[balance_id]>:<&sp>]>
                        - foreach <server.flag[balance_values]> {
                            - if <def[value].is[==].to[<def[balance_value]>]> {
                                - flag player balance:<def[loop_index].sub[0.5].div[5]>
                                }
                            }
                        }
                    }
                }
            - narrate "<player.flag[strenght]> and <player.flag[balance]>" 
potato:
    type: item
    display name: potato
    material: stone
    lore:
        - "Strenght: 5"
        - "Balance: poor"

banana:
    type: item
    display name: banana
    material: stone
    lore:
        - "Strenght: 10"
        - "Balance: excelent"