from design.conditions import conditions skills={ #Monsters "portal":{ "type":"monster", "name":"Portal", "explanation":"Open a portal to different maps and instances", }, "self_healing":{ "type":"monster", "name":"Healing", "explanation":"Periodical self healing", }, "healing":{ "type":"monster", "name":"Healing", "explanation":"Heals an ally or self", }, "anger":{ "type":"monster", "name":"Anger", "explanation":"Randomly targets someone", "hostile":True, }, "zap":{ "type":"monster", "name":"Zap", "explanation":"Zaps you with a pure damage ray", "damage":1200, "hostile":True, "projectile":"sburst", "damage_type":"pure", }, "fireball":{ "type":"monster", "name":"Fireball", "explanation":"Hurls a fireball!", "damage":4000, "hostile":True, "projectile":"magic", "damage_type":"magical", }, "frostball":{ "type":"monster", "name":"Frostball", "explanation":"Hurls a frostball!", "damage":800, "hostile":True, "projectile":"frostball", "damage_type":"magical", }, "warpstomp":{ "type":"monster", "name":"Warpstomp", "explanation":"Warps to a random player nearby and stomps players in vicinity", "hostile":True, }, "deepfreeze":{ "type":"monster", "name":"Deepfreeze", "explanation":"Randomly freezes a nearby opponent", "damage":1200, "hostile":True, "projectile":"burst", "damage_type":"pure", }, "multi_burn":{ "type":"monster", "name":"Multi Burn", "explanation":"Hurl a fireball at everyone who dared attack him and burn them!", "ui":True, "hostile":True, "skin":"essenceoffire", "damage_type":"magical", }, "mlight":{ "type":"monster", "name":"Light", "explanation":"Reveals invisible entities nearby and prevents them from going invisible again for 12 seconds.", "ui":True, "hostile":True, "skin":"skill_light", }, "dampening_aura":{ "type":"monster", "name":"Dampening", "explanation":"Prevents teleports", "condition":"dampened", "aura":True, "hostile":True, "passive":True, "skin":"condition_neutral", }, "weakness_aura":{ "type":"monster", "name":"Weakness", "explanation":"Weakens", "condition":"weakness", "aura":True, "hostile":True, "passive":True, "skin":"condition_bad", }, "curse_aura":{ "type":"monster", "name":"Curse", "explanation":"A wretched aura", "condition":"cursed", "aura":True, "hostile":True, "passive":True, "skin":"condition_bad", }, "multi_freeze":{ "type":"monster", "name":"Multi Freeze", "explanation":"Hurl a frostball at everyone who dared attack him and freeze them!", "hostile":True, "ui":True, "skin":"essenceoffrost", "damage_type":"magical", }, "mtangle":{ "type":"monster", "name":"Tangle", "explanation":"Communicates through spores to activate dormant plants underneath. Slows down opponents significantly.", "mp":360, "range":480, "cooldown":40000, "duration":5000, "condition":"tangled", "target":True, "monsters":True, "hostile":True, }, "stone":{ "type":"monster", "name":"Stone", "explanation":"Looking into his eye for too long turns you to stone!", "condition":"stoned", "hostile":True, }, #Players "snowball":{ "type":"skill", "skin":"snowball", "consume":"snowball", "name":"Snowball", "explanation":"Throw a snowball at someone!", "condition":"frozen", "damage":1, "mp":120, "cooldown":180, "range":720, "projectile":"snowball", "target":True, "merchant_use":True, }, "scare":{ "type":"skill", "skin":"skill_scare", "slot":[["orb","jacko"]], "name":"Scare", "explanation":"Activate your Jack-o Lantern to scare away monsters targeting you!", "mp":50, "cooldown":5000, }, "power":{ "type":"skill", "skin":"powerglove", "slot":[["gloves","powerglove"]], "name":"Power", "explanation":"Unleash the power", "mp":320, "cooldown":500, "condition":"power", }, "xpower":{ "type":"skill", "skin":"goldenpowerglove", "slot":[["gloves","goldenpowerglove"]], "name":"Power", "explanation":"Unleash the power", "mp":320, "cooldown":500, "condition":"xpower", }, "warp":{ "type":"skill", "skin":"warpvest", "slot":[["chest","warpvest"]], "name":"Warp", "explanation":"Warp space to jump into any location", "mp":40, "cooldown":200, }, "zapperzap":{ "type":"skill", "skin":"trigger", "slot":[["ring1","zapper"],["ring2","zapper"]], "name":"Zap", "explanation":"Zap your target for 200 damage", "damage":200, "damage_type":"magical", "mp":140, "cooldown":200, "range":420, "projectile":"gburst", "target":True, "hostile":True, }, "charm":{ "type":"skill", "skin":"charmer", "slot":[["orb","charmer"]], "name":"Charm", "explanation":"Charm a monster [%]", "condition":"charmed", "mp":40, "cooldown":60000, "target":"monster", "hostile":True, }, "tangle":{ "type":"skill", "skin":"heartwood", "slot":[["mainhand","heartwood"],["offhand","heartwood"]], "name":"Tangle", "explanation":"Unleash the contained powers of nature to hinder an opponent.", "mp":40, "cooldown":60000, "target":True, "hostile":True, }, "rspeed":{ "type":"skill", "skin":"buff_speed", "condition":"rspeed", "class":["rogue"], "name":"Rogue Swiftness", "explanation":"Buff a target to increase their speed.", "mp":320, "range":320, "level":40, "cooldown":100, "target":"player", }, "reflection":{ "type":"skill", "skin":"buff_reflection", "condition":"reflection", "class":["mage"], "name":"Reflective Shield", "explanation":"Erects a magical shield around the target to grant them +20% Reflection for the duration.", "mp":540, "range":320, "level":60, "cooldown":30000, "target":"player", }, "pickpocket":{ "type":"skill", "skin":"skill_pickpocket", "class":["rogue"], "name":"Pickpocket", "explanation":"Try to steal a single PVP marked item from the target!", "range":15, "level":16, "mp":10, "reuse_cooldown":2*60*1000, "duration_min":200, "duration_max":2000, "target":"player", "persistent":True, }, "fishing":{ "type":"skill", "skin":"skill_fishing", "class":["merchant"], "wtype":["rod"], "name":"Fishing", "explanation":"Swing your rod and catch some fish!", "range":15, "level":16, "mp":120, "reuse_cooldown":48*60*1000, "duration_min":5000, "duration_max":15000, "persistent":True, }, "mining":{ "type":"skill", "skin":"skill_mining", "class":["merchant"], "wtype":["pickaxe"], "name":"Mining", "explanation":"Use your pickaxe to mine some mines!", "range":15, "level":16, "mp":120, "reuse_cooldown":124*60*1000, "duration_min":5000, "duration_max":15000, "persistent":True, }, "mluck":{ "type":"skill", "skin":"buff_luck", "condition":"mluck", "class":["merchant"], "name":"Merchant's Luck", "explanation":"Buff a target to increase their luck. 2% chance for you to receive a duplicate of their looted items!", "level":40, "mp":10, "range":320, "cooldown":100, "target":"player", }, "mcourage":{ "type":"skill", "skin":"skill_mcourage", "condition":"mcourage", "class":["merchant"], "name":"Merchant's Courage", "explanation":"When you sense danger, you know what to do...", "level":70, "mp":2400, "cooldown":2000, }, "mfrenzy":{ "type":"skill", "skin":"skill_mfrenzy", "condition":"mfrenzy", "class":["merchant"], "name":"Merchant's Frenzy", "explanation":"When you sense danger, you know what to do!", "level":85, "mp":400, "cooldown":20000, }, "massproduction":{ "type":"skill", "skin":"skill_massproduction", "condition":"massproduction", "class":["merchant"], "name":"Mass Production", "explanation":"Adds a 1-time use buff that speeds up the next upgrade or compound by 50%. The buff expires in 10 seconds if not used.", "level":30, "mp":20, "cooldown":50, }, "massproductionpp":{ "type":"skill", "skin":"skill_massproductionpp", "condition":"massproductionpp", "class":["merchant"], "name":"Mass Production++", "explanation":"Adds a 1-time use buff that speeds up the next upgrade or compound by 90%. The buff expires in 10 seconds if not used.", "level":60, "mp":200, "cooldown":50, }, "throw":{ "type":"skill", "skin":"skill_throw", "class":["merchant"], "name":"Throw Stuff", "explanation":"Terrified? Just throw whatever you can find at your opponent!", "range":200, "code":"range=character.level+200", "positive":["essenceoflife"], "negative":["essenceoffire"], "nprop":["attack","armor"], "damage_type":"physical", "level":60, "mp":200, "cooldown":400, "hostile":True, "target":True, "pierces_immunity":True, }, "burst":{ "type":"skill", "skin":"skill_burst", "class":["mage"], "name":"Mana Burst", "explanation":"Converts your entire mana pool to pure damage. Deals 0.555 pure damage for each MP.", "mp":0, "ratio":0.555, "cooldown":6000, "target":True, "damage_type":"pure", "hostile":True, "projectile":"burst", "use_range":True, }, "cburst":{ "type":"skill", "skin":"skill_cburst", "class":["mage"], "name":"Controlled Mana Burst", "level":75, "explanation":"A skill for experienced mages. Allows you to control and channel your most powerful ability.", "mp":80, "ratio":0.5, "cooldown":240, "list":True, "hostile":True, "projectile":"burst", "use_range":True, "damage_type":"magical", }, "energize":{ "type":"skill", "skin":"skill_energize", "class":["mage"], "name":"Energize", "range":320, "level":20, "explanation":"Transfers mana to a target. As a side effect the target gains high attack speed for a short duration.", "cooldown":4000, "condition":"energized", "target":"player", }, "light":{ "type":"skill", "skin":"skill_light", "class":["mage"], "name":"Light", "explanation":"Reveals invisible entities nearby and prevents them from going invisible again for 12 seconds.", "mp":2000, "cooldown":0, "hostile":True, }, "blink":{ "type":"skill", "skin":"skill_blink", "class":["mage"], "name":"Blink", "explanation":"Teleport to a nearby location.", "mp":1600, "cooldown":1200, }, "magiport":{ "type":"skill", "skin":"skill_teleport", "class":["mage"], "name":"Magiport", "explanation":"Pull someone to your location using the magical paths that surround our world.", "complementary":"Unless the target doesn't have a T2+ helmet, high intelligence, or a low level, it can't resist being magiported. (Reverted [03/07/18])", "mp":900, "cooldown":0, "target":"player", "global":True, }, "charge":{ "type":"skill", "skin":"skill_charge", "class":["warrior"], "name":"Charge", "explanation":"Gain 30 Speed for a short duration.", "mp":0, "condition":"charging", "cooldown":40000, }, "dash":{ "type":"skill", "skin":"skill_dash", "class":["warrior"], "name":"Dash", "explanation":"Push forward, jumping over obstacles, climbing hills, defying physics!", "mp":120, "set_speed":500, "cooldown":0, }, "taunt":{ "type":"skill", "skin":"skill_taunt", "class":["warrior"], "name":"Taunt", "explanation":"Taunts an enemy. Steals aggro from friendly targets.", #Prevents players from escaping in pvp. "range":200, "mp":40, "cooldown":3000, "damage":1, "target":True, "hostile":True, "projectile":"stone", "pierces_immunity":True, }, "agitate":{ "type":"skill", "skin":"skill_agitate", "class":["warrior"], "name":"Agitate", "explanation":"Taunts all nearby monsters.", "range":320, "level":68, "mp":420, "cooldown":2200, "hostile":True, }, "hardshell":{ "type":"skill", "skin":"skill_hardshell", "class":["warrior"], "name":"Hard Shell", "explanation":"Use everything at your disposal to protect yourself from physical attacks for a short duration.", "condition":"hardshell", "level":60, "mp":480, "cooldown":16000, }, "cleave":{ "type":"skill", "skin":"skill_cleave", "class":["warrior"], "wtype":["axe","scythe"], "name":"Cleave", "explanation":"Swing your axe in a flurry to damage all enemies nearby!", "range":160, "level":52, "mp":720, "cooldown":1200, "hostile":True, "pierces_immunity":True, "damage_type":"physical", "procs":True, }, "stomp":{ "type":"skill", "skin":"skill_stomp", "class":["warrior"], "wtype":"basher", "name":"Stomp", "explanation":"Use your basher to Stomp the ground to Stun enemies nearby!", "condition":"stunned", "range":400, "level":52, "mp":120, "cooldown":24000, "duration":3200, "hostile":True, "damage_type":"physical", }, "warcry":{ "type":"skill", "skin":"skill_warcry", "class":["warrior"], "name":"War Cry", "explanation":"Motivate your allies to fight!", "level":70, "mp":320, "range":600, "cooldown":60000, "condition":"warcry", }, "poisonarrow":{ "type":"skill", "skin":"skill_poisonarrow", "class":["ranger"], "name":"Poison Arrow", "explanation":"Fire a single low damage but poison coated arrow at your opponent.", "wtype":["bow","crossbow"], "cooldown":300, "damage":200, "mp":360, "consume":"poison", "target":True, "hostile":True, "use_range":True, "projectile":"poisonarrow", "damage_type":"physical", "condition":"poisoned", "procs":True, }, "piercingshot":{ "type":"skill", "skin":"skill_piercingshot", "class":["ranger"], "name":"Piercing Shot", "explanation":"Fire heavy, armor piercing arrows at your opponent. They deal 75% of the damage but pierce through 500 armor.", "wtype":["bow","crossbow"], "apiercing":500, "damage_multiplier":0.75, "mp":64, "level":72, "cooldown_multiplier":1, "share":"attack", "use_range":True, "target":True, "hostile":True, "damage_type":"physical", "procs":True, "pierces_immunity":True, }, "huntersmark":{ "type":"skill", "skin":"skill_huntersmark", "class":["ranger"], "name":"Hunter's Mark", "explanation":"Mark an opponent for death, prevent them from stealthing away and increase damage done by 10%", "mp":240, "condition":"marked", "cooldown":10000, "target":True, "hostile":True, }, "pcoat":{ "type":"skill", "skin":"skill_pcoat", "class":["rogue"], "name":"A Poisonous Touch", "explanation":"Coat your blade with a poison sack. Poison everyone you damage before the venom dissipates.", "condition":"poisonous", "cooldown":50000, "duration":7000, "mp":600, "consume":"poison", }, "invis":{ "type":"skill", "skin":"skill_invis", "class":["rogue"], "name":"Assassin's Smoke", "explanation":"Disappear into the shadows. Deal 1.25X damage when you sneak up on an enemy. Cooldown starts when you re-appear.", "reuse_cooldown":12000, }, "mentalburst":{ "type":"skill", "skin":"skill_mentalburst", "class":["rogue"], "name":"Mental Burst", "explanation":"Channel your mental abilities for a magical blow. If the target is defeated, the damage dealt is converted to mana.", "damage_type":"magical", "cooldown":900, "damage_multiplier":0.6, "range_multiplier":1.2, "range_bonus":32, "mp":180, "target":True, "requirements":{"int":64}, "warning":"Highly unbalanced skill, could get nerfed or modified", "hostile":True, "projectile":"mentalburst", }, "quickpunch":{ "type":"skill", "skin":"skill_quickpunch", "class":["rogue"], "name":"Quick Punch", "explanation":"Use your agility to quickly punch your opponent between your devastating attacks!", "wtype":"fist", "cooldown":250, "damage_multiplier":0.25, "mp":240, "use_range":True, "target":True, "hostile":True, "projectile":"quickpunch", "damage_type":"physical", "pierces_immunity":True, #"procs":True, }, "quickstab":{ "type":"skill", "skin":"skill_quickstab", "class":["rogue"], "name":"Quick Stab", "explanation":"Use your agility to quickly stab your opponent between your devastating attacks!", "wtype":"dagger", "cooldown":250, "share":"quickpunch", "damage_multiplier":0.36, "mp":320, "use_range":True, "target":True, "hostile":True, "projectile":"quickstab", "damage_type":"physical", "procs":True, "pierces_immunity":True, }, "stack":{ "type":"passive", "skin":"skill_stack", "class":["rogue"], "name":"Stacked Damage", "explanation":"Slowly learning the ways of your opponent each rogue attack deals one more damage.", "max":2000, }, "shadowstrike":{ "type":"skill", "skin":"skill_shadowstrike", "class":["rogue"], "name":"Shadow Strike", "explanation":"Use a shadow stone to strike a random enemy in a parallel universe!", "range":360, "level":70, "mp":320, "cooldown":1200, "consume":"shadowstone", "hostile":True, "damage_type":"physical", }, "entangle":{ "type":"skill", "skin":"skill_entangle", "class":["mage"], "name":"Entangle", "explanation":"Unleash the contained powers of nature to hinder an opponent.", "level":72, "mp":360, "range":480, "cooldown":40000, "duration":5000, "condition":"tangled", "target":True, "monsters":True, "consume":"essenceofnature", "hostile":True, }, "track":{ "type":"skill", "skin":"skill_track", "class":["ranger"], "name":"Track", "explanation":"Use your fine-tuned senses to detect others.", "cooldown":1600, "range":1440, "mp":80, }, "supershot":{ "type":"skill", "skin":"skill_supershot", "class":["ranger"], "name":"Supershot", "explanation":"Deals 1.5X instant damage from an incredible distance.", "wtype":["bow","crossbow"], "damage_multiplier":1.5, "cooldown":30000, "range_multiplier":3, "range_bonus":20, "mp":400, "target":True, "hostile":True, "pierces_immunity":True, "damage_type":"physical", "procs":True, }, "3shot":{ "type":"skill", "skin":"skill_3shot", "class":["ranger"], "name":"3-Shot", "explanation":"Hits 3 targets at once! Deals 0.7X damage to each target.", "wtype":["bow","crossbow"], "damage_multiplier":0.7, "level":60, "mp":200, "cooldown_multiplier":1, "multi":True, "share":"attack", "hostile":True, "pierces_immunity":True, "damage_type":"physical", "procs":True, "use_range":True, }, "5shot":{ "type":"skill", "skin":"skill_5shot", "class":["ranger"], "name":"5-Shot", "explanation":"Hits 5 targets at once! Deals 0.5X damage to each target.", "wtype":["bow","crossbow"], "damage_multiplier":0.5, "level":75, "mp":320, "cooldown_multiplier":1, "multi":True, "share":"attack", "hostile":True, "pierces_immunity":True, "damage_type":"physical", "procs":True, "use_range":True, }, "4fingers":{ "type":"skill", "skin":"skill_4fingers", "class":["ranger"], "name":"4 Finger Technique", "explanation":"Use the ancient arts to send the target to a deep meditation state. Just several taps to key chakra points does the job!", "level":64, "mp":260, "range":120, "cooldown":40000, "duration":5000, "condition":"fingered", "target":"player", "monsters":False, "hostile":True, }, "curse":{ "type":"skill", "skin":"skill_curse", "class":["priest"], "name":"Curse", "explanation":"Cursed opponents receive 20% more damage, deal 20% less damage and they slow down by 20.", "mp":400, "range":200, "duration":5000, "cooldown":5000, "condition":"cursed", "target":True, "hostile":True, "projectile":"curse", "damage_type":"magical", }, "phaseout":{ "type":"skill", "skin":"skill_phaseout", "class":["priest"], "name":"Phase Out", "explanation":"Absorb a shadow stone to phase yourself out from this universe.", "level":64, "duration":5000, "cooldown":4000, "mp":200, "consume":"shadowstone", "condition":"phasedout", }, "darkblessing":{ "type":"skill", "skin":"skill_dbuff", "class":["priest"], "name":"Dark Blessing", "explanation":"Increases damage by 25% for the duration.", "level":70, "mp":900, "range":600, "duration":8000, "cooldown":60000, "condition":"darkblessing", }, "absorb":{ "type":"skill", "skin":"skill_absorbsins", "class":["priest"], "name":"Absorb Sins", "explanation":"Pulls all targets from a friendly character.", "range":240, "cooldown":400, "mp":200, "level":55, "target":"player", }, "partyheal":{ "type":"skill", "skin":"skill_pheal", "class":["priest"], "name":"Party Heal", "explanation":"Heals all the party members.", "output":400, "action":"heal", "levels":[ [0,500], [60,600], [72,720], [80,800], ], "mp":400, "cooldown":200, "party":True, "projectile":"partyheal", "damage_type":"magical", "heal":True, "multi":True, }, "selfheal":{ "type":"skill", "skin":"skill_selfheal", "class":["paladin"], "name":"Heal", "explanation":"Heal yourself", "output":400, "action":"heal", "levels":[ [0,500], [60,600], [72,720], [80,800], ], "mp":20, "cooldown":1200, "projectile":"partyheal", "damage_type":"magical", "heal":True, }, "mshield":{ "type":"skill", "skin":"skill_mshield", "class":["paladin"], "name":"Mana Shield", "explanation":"Create a magical shield around yourself to absorb damage [Toggle]", "condition":"mshield", "toggle":True, "mp":0, "duration":999999999, "cooldown":0, }, "purify":{ "type":"skill", "skin":"skill_purify", "class":["paladin"], "name":"Purify", "level":60, "damage":2000, "damage_type":"pure", "explanation":"Deals 2000 pure damage purifying the target, removes all buffs and debuffs dealing additional 400 damage for each and receive the Purifier buff if the target is defeated!", "kill_buff":"purifier", "projectile":"purify", "hostile":True, "target":True, "mp":360, "cooldown":24000, "range":480, }, "smash":{ "type":"skill", "skin":"skill_smash", "class":["paladin"], "name":"Smash", "explanation":"Smash your opponent using your mace!", "wtype":"mace", "cooldown":320, "level":10, "damage_multiplier":0.36, "mp":380, "use_range":True, "target":True, "hostile":True, "projectile":"smash", "damage_type":"physical", "procs":True, "pierces_immunity":True, }, "alchemy":{ "type":"skill", "skin":"skill_alchemy", "class":["mage"], "name":"Alchemy", "explanation":"Dangerous skill, use with caution! Converts your firstfound item into pure gold!", "variance":0.2, "output":0.8, "action":"rate", "levels":[ [40,0.8], [50,0.86], [60,0.92], [70,1.0], [80,1.06], [90,1.10], [100,1.12], ], "level":40, "mp":347, "cooldown":8000, "party":True, }, "revive":{ "type":"skill", "skin":"skill_revive", "class":["priest"], "name":"Revive!", "explanation":"If a fallen comrade's gravestone has been healed fully, revives them using an Essence of Life!", "mp":500, "cooldown":200, "range":240, "consume":"essenceoflife", "target":"player", }, "regen_hp":{ "type":"ability", "skin":"regen_hp", "name":"Regenerate HP", "share":"use_hp", "cooldown_multiplier":2, "explanation":"Regenerate 50 HP without using potions.", }, "regen_mp":{ "type":"ability", "skin":"regen_mp", "name":"Regenerate MP", "share":"use_mp", "cooldown_multiplier":2, "explanation":"Regenerate 100 MP without using potions.", }, "use_mp":{ "type":"ability", "skin":"use_mp", "name":"Use MP Potion", "explanation":"Uses an MP potion from your inventory. If there are multiple potions, the last one is used. If there are no potions, your character regenerates a small amount of MP with a high cooldown.", "cooldown":2000, }, "use_hp":{ "type":"ability", "skin":"use_hp", "name":"Use HP Potion", "explanation":"Uses an HP potion from your inventory. If there are multiple potions, the last one is used. If there are no potions, your character regenerates a small amount of HP with a high cooldown.", "cooldown":2000, }, "use_town":{ "type":"ability", "skin":"use_town", "name":"Town", "explanation":"Teleports you to the center of the map.", "cooldown":0, }, "attack":{ "type":"ability", "skin":"attack", "name":"Attack", "explanation":"Attack the target", "target":True, "hostile":True, "pierces_immunity": True, "use_range":True, "projectile":"momentum", "procs":True, }, "heal":{ "type":"ability", "skin":"heal", "name":"Heal", "class":["priest"], "explanation":"Heal the target", "cooldown_multiplier":1, "share":"attack", "target":True, "use_range":True, "pierces_immunity": True, "projectile":"plight", "damage_type":"magical", "heal":True, "procs":True, }, "travel":{ "type":"ability", "skin":"travel", "name":"Travel!", "explanation":"Where would you like to visit?", }, "stop":{ "type":"ability", "skin":"stop_g", "name":"Stop", "explanation":"Stops your character. Cancels all channeling abilities and active skills.", "cooldown":0, }, "snippet":{ "type":"utility", "skin":"run_snippet1", "name":"Snippet", "explanation":"Maps a code snippet to a keypress.", "skins":["run_snippet0","run_snippet1","run_snippet2"], "code":True, }, "emotion":{ "type":"utility", "skin":"run_emotion", "name":"Emotion", "explanation":"Show a random emotion you've unlocked!", }, "pure_eval":{ "type":"utility", "skin":"run_eval0", "name":"Pure Eval", "explanation":"[Advanced] Maps a code snippet to be run directly inside the game, rather than using CODE. (Not to be confused with the text command, /eval, which evals inside the Code iframe)", "skins":["run_eval0","run_eval1","run_eval2"], "code":True, }, "esc":{ "type":"utility", "skin":"esc", "name":"ESC", "explanation":"Calls the esc_pressed() function inside the game. Major functionality.", "ui":False, }, "move_up":{ "type":"utility", "skin":"up", "name":"Move Up", "explanation":"Moves the character upwards", "ui":False, }, "move_down":{ "type":"utility", "skin":"down", "name":"Move Down", "explanation":"Moves the character downwards", "ui":False, }, "move_left":{ "type":"utility", "skin":"left", "name":"Move Left", "explanation":"Moves the character leftwards", "ui":False, }, "move_right":{ "type":"utility", "skin":"right", "name":"Move Right", "explanation":"Moves the character rightwards", "ui":False, }, "toggle_code":{ "skin":"code", "name":"Toggle Code", "ui":False, }, "toggle_run_code":{ "skin":"run_code", "name":"Engage/Disengage Code", "ui":False, }, "toggle_inventory":{ "type":"utility", "skin":"inventory", "name":"Toggle Inventory", "explanation":"Toggles the inventory", "ui":False, }, "toggle_stats":{ "type":"utility", "skin":"stats", "name":"Toggle Stats", "explanation":"Toggles the character sheet", "ui":False, }, "toggle_character":{ "type":"utility", "skin":"character", "name":"Toggle Character", "explanation":"Toggles the character focus", "ui":False, }, "open_snippet":{ "type":"utility", "skin":"snippet", "name":"Open Snippet", "explanation":"Open the Code Snippet interface", "ui":False, }, "interact":{ "type":"utility", "skin":"interact", "name":"Interact", "explanation":"Interact with the nearest game entity, a door, doorway, or NPC.", "ui":False, }, "gm":{ "type":"gm", "skin":"gm", "name":"GM Abilities", "explanation":"Jump, Jail, Mute, Use Any Skill", } } for name in skills: if "condition" in skills[name] and "duration" not in skills[name] and skills[name]["condition"] in conditions and conditions[skills[name]["condition"]]: try: skills[name]["duration"]=conditions[skills[name]["condition"]]["duration"] except: import logging logging.error("%s has no duration"%conditions[skills[name]["condition"]])