All Projects → kurapica → Scorpio

kurapica / Scorpio

Licence: other
Scorpio Addon FrameWork for World of Warcraft

Programming Languages

lua
6591 projects

Projects that are alternatives of or similar to Scorpio

Cell
A World of Warcraft raid frame addon.
Stars: ✭ 21 (-44.74%)
Mutual labels:  wow-addon
wow-api-docs
An in-game graphical browser for Blizzard's API Documentation
Stars: ✭ 16 (-57.89%)
Mutual labels:  wow-addon
FieldGuide
A World of Warcraft: Classic addon for displaying visually when you will learn certain spells.
Stars: ✭ 14 (-63.16%)
Mutual labels:  wow-addon
hero-lib
WoW Addon - Core Library used by HeroRotation and AethysTools, can also be used by others 3rd-Party Addons.
Stars: ✭ 33 (-13.16%)
Mutual labels:  wow-addon
ImprovedBlizzardUI
General improvements to the Blizzard UI
Stars: ✭ 34 (-10.53%)
Mutual labels:  wow-addon
Carbonite-Classic
Carbonite + Modules for WoW Classic
Stars: ✭ 44 (+15.79%)
Mutual labels:  wow-addon
idTip
WoW Addon: Adds IDs to the ingame tooltips
Stars: ✭ 38 (+0%)
Mutual labels:  wow-addon
oUF P3lim
Minimalistic unit frames
Stars: ✭ 18 (-52.63%)
Mutual labels:  wow-addon
ls Toasts
Development repository of ls: Toasts
Stars: ✭ 20 (-47.37%)
Mutual labels:  wow-addon
ChatBar
A world of warcraft Chatframe Addon
Stars: ✭ 18 (-52.63%)
Mutual labels:  wow-addon
BetterVendorPrice
Vendor price with stack information to make better decisions (WoW Classic, BC and Shadowlands)
Stars: ✭ 21 (-44.74%)
Mutual labels:  wow-addon
DBM-Warmane
DBM for Warmane (Icecrown, Frostmourne, Lordaeron)
Stars: ✭ 62 (+63.16%)
Mutual labels:  wow-addon
prat-3-0
Prat-3.0 is a chat enhancement addon for world of warcraft
Stars: ✭ 21 (-44.74%)
Mutual labels:  wow-addon
SuperMacro
Addons for World of Warcraft 1.12.1
Stars: ✭ 21 (-44.74%)
Mutual labels:  wow-addon
DBM-VoicePack-Yike
A voicepack for Deadly Boss Mods. By Yike Xia (DBM夏一可语音包)
Stars: ✭ 21 (-44.74%)
Mutual labels:  wow-addon
CChatNotifier
A WoW Classic addon that can be used to filter chat for custom keywords.
Stars: ✭ 17 (-55.26%)
Mutual labels:  wow-addon
routes classic
Routes addon but compatible with WoW Classic
Stars: ✭ 17 (-55.26%)
Mutual labels:  wow-addon
DBM-Retail
The ultimate encounter helper (for Retail) to give you fight info that's easy to process at a glance. DBM aims to focus on what's happening to you, and what YOU need to do about it.
Stars: ✭ 194 (+410.53%)
Mutual labels:  wow-addon
AdvancedInterfaceOptions
WoW Addon that restores access to removed interface options in Legion
Stars: ✭ 43 (+13.16%)
Mutual labels:  wow-addon
Rarity
Collectibles and statistics tracking addon for World of Warcraft: Shadowlands
Stars: ✭ 27 (-28.95%)
Mutual labels:  wow-addon

Scorpio

The Scorpio Project is used to build an addon platform for World of Warcraft.

It's designed based on the PLoop, although the Lib is created based on the OOP system, it provided a pure functional programming style to easy the addon development.

The Scorpio provides several features to simple and power the addons:

  1. A declarative functional programming style to register and handle the system events, secure hooks and slash commands.

    -- Use a Scorpio Module to change the code environment
    -- so the declarative functional style can be used
    Scorpio "Test" ""
    
    -- Register UNIT_SPELLCAST_START system event and bind its handler
    __SystemEvent__()
    function UNIT_SPELLCAST_START(unit, spell)
        print(unit .. " cast " .. spell)
    end
  2. A full addon life-cycle management. Addons can split their features into several modules for management.

    -- Addon Module can have sub-modules, the sub-modules can share all global variables defined in its parent module
    Scorpio "Test.SubModule" ""
    
    -- Triggered when the addon(module) and it's saved variables is loaded
    function OnLoad()
    end
    
    -- Triggered when the addon(module) is enabled or player logined, so all player data can be accessed
    function OnEnable()
    end
    
    -- Triggered when player specialization changed or player logined, we can check the player's specialization
    function OnSpecChanged(spec)
    end
    
    -- Triggered when the addon(module) is disabled, normally no use, the module will disable its event handlers
    -- when it's disabled.
    function OnDisable()
    end
    
    -- Triggered when the player logout, we can modify the saved variables for the last time
    function OnQuit()
    end
  3. An asynchronous framework to avoid the using of callbacks, and have all the asynchronous tasks controlled under a task schedule system, so the FPS will be smooth and almost no dropping caused by the Lua codes.

    Scorpio "Test" ""
    
    -- So the endless task will be started when player logined
    __Async__()
    function OnEnable()
        local count = 0
    
        while true do
            -- Delay the code execution for 10s, only works in
            -- function with `__Async__` declaration
            Delay(10)
    
            count = count + 10
            print("you have played for " .. count .. " sec")
        end
    end
  4. A new UI & Skin system, It'll split the functionality and display of the widgets, so we can create functionality UIs in one addons, and let's other authors do the skin parts very easily.

    Scorpio "Test" ""
    
    Style[UIParent]     = {
        -- Here a fontstring will be created on the center of the screen
        -- widget like Label are property child, they can be released and re-used
        -- Change the code to `Label = NIL`, it'll be released and waiting for the next usage
        -- So we don't need create those ui elements in the core logic, it's just a skin settings
        -- We'll see more in the observable introduction
        Label           = {
            location    = { Anchor("CENTER") },
    
            -- Bind the label's text to observe the player's unit health
            -- Need lose some hp to trigger the UNIT_HEALTH event
            text        = Wow.FromEvent("UNIT_HEALTH")  -- An observable generate from the UNIT_HEALTH event
                        :MatchUnit("player")            -- A filter operation that only allow player
                        :Map(UnitHealth),               -- A map operation that change the unit -> health
        }
    }
  5. A well designed secure template framework, so we can enjoy the power of the secure template system provided by the blizzard and stay away the hard part.

  • Check the Aim for nameplates, use its defaultskin.lua can simply change all the skins.
  • Check the AshToAsh for raid panel, it can smoothly relayout during combat.
  • Check the ShadowDancer for action bars, it provide all your need for the action bars, also with special features.
  • Check the BagView for containers.

Documents

You can find the documents in Scorpio Documents

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].