bugfix1001.2

星引擎Party已发行!
欢迎来到Star Engine 星引擎 WIKI
点击成为魔法少女!

全站通知:

模块:PVP004

来自星引擎WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模块的文档可以在模块:PVP004/doc创建

local p = {}

-- 主函数:生成完整SVG地图
function p.generate(frame)
    -- 存储SVG各部分内容的表(便于拼接)
    local svgParts = {}
    
    -- 1. SVG头部(宽高、视口等)
    table.insert(svgParts, '<svg width="700" height="700" viewBox="0 0 700 700" xmlns="http://www.w3.org/2000/svg">')
    
    -- 2. 主路径(外圆和扇形区域)
    table.insert(svgParts, '  <path d=" M 675,350 C 675,170.6325 529.3675,25 350,25 S 25,170.6325 25,350 S 170.6325,675 350,675 S 675,529.3675 675,350 Z M 623.8613,375 A 275,275 0 0 1 375,623.8613 l0,-248.8612 z M 325,623.8613 A 275,275 0 0 1 76.1387,375 l248.8612,0 z M 76.1387,325 A 275,275 0 0 1 325,76.1387 l0,248.8612 z M 375,76.1387 A 275,275 0 0 1 623.8613,325 l-248.8612,0 z" fill="#CCC" stroke="#5d4037" stroke-width="4" />')
    
    -- 3. 所有foreignObject(模板嵌入区域)
    -- 存储每个foreignObject的参数:x, y, 地块名
    local foreignObjects = {
        {x = 326, y = 26, plotName = "全员事件"},
        {x = 286.8421, y = 28.5665, plotName = "突击门"},
        {x = 248.3543, y = 36.2223, plotName = "传送门"},
        {x = 211.195, y = 48.8361, plotName = "彩票"},
        {x = 176, y = 66.1924, plotName = "全员事件"},
        {x = 143.3716, y = 87.994, plotName = "天降横祸"},
        {x = 113.868, y = 113.868, plotName = "P1"},
        {x = 87.994, y = 143.3716, plotName = "天降横祸"},
        {x = 66.1924, y = 176, plotName = "天降横财"},
        {x = 48.8361, y = 211.195, plotName = "疾行"},
        {x = 36.2223, y = 248.3543, plotName = "商店"},
        {x = 28.5665, y = 286.8421, plotName = "天降横财"},
        {x = 26, y = 326, plotName = "全员事件"},
        {x = 28.5665, y = 365.1579, plotName = "个人命运"},
        {x = 36.2223, y = 403.6457, plotName = "传送门"},
        {x = 48.8361, y = 440.805, plotName = "彩票"},
        {x = 66.1924, y = 476, plotName = "全员事件"},
        {x = 87.994, y = 508.6284, plotName = "天降横祸"},
        {x = 113.868, y = 538.132, plotName = "P4"},
        {x = 143.3716, y = 564.006, plotName = "天降横祸"},
        {x = 176, y = 585.8076, plotName = "天降横财"},
        {x = 211.195, y = 603.1639, plotName = "疾行"},
        {x = 248.3543, y = 615.7777, plotName = "商店"},
        {x = 286.8421, y = 623.4335, plotName = "猜猜乐"},
        {x = 326, y = 626, plotName = "全员事件"},
        {x = 365.1579, y = 623.4335, plotName = "突击门"},
        {x = 403.6457, y = 615.7777, plotName = "传送门"},
        {x = 440.805, y = 603.1639, plotName = "彩票"},
        {x = 476, y = 585.8076, plotName = "全员事件"},
        {x = 508.6284, y = 564.006, plotName = "天降横祸"},
        {x = 538.132, y = 538.132, plotName = "P3"},
        {x = 564.006, y = 508.6284, plotName = "天降横祸"},
        {x = 585.8076, y = 476, plotName = "天降横财"},
        {x = 603.1639, y = 440.805, plotName = "疾行"},
        {x = 615.7777, y = 403.6457, plotName = "卡牌奖励"},
        {x = 623.4335, y = 365.1579, plotName = "天降横财"},
        {x = 626, y = 326, plotName = "全员事件"},
        {x = 623.4335, y = 286.8421, plotName = "个人命运"},
        {x = 615.7777, y = 248.3543, plotName = "传送门"},
        {x = 603.1639, y = 211.195, plotName = "彩票"},
        {x = 585.8076, y = 176, plotName = "全员事件"},
        {x = 564.006, y = 143.3716, plotName = "天降横祸"},
        {x = 538.132, y = 113.868, plotName = "P2"},
        {x = 508.6284, y = 87.994, plotName = "天降横祸"},
        {x = 476, y = 66.1924, plotName = "天降横财"},
        {x = 440.805, y = 48.8361, plotName = "疾行"},
        {x = 403.6457, y = 36.2223, plotName = "商店"},
        {x = 365.1579, y = 28.5665, plotName = "猜猜乐"},
    }
    
    -- 循环生成每个foreignObject及模板调用
    for _, fo in ipairs(foreignObjects) do
        table.insert(svgParts, string.format(
            '  <foreignObject x="%.4f" y="%.4f" width="48" height="48">',
            fo.x, fo.y
        ))
        -- 嵌入模板A,传入地块名参数
        table.insert(svgParts, string.format('    {{悬浮框2|%s}}', fo.plotName))
        table.insert(svgParts, '  </foreignObject>')
    end
    
    -- 4. 闭合SVG标签
    table.insert(svgParts, '</svg>')
    
    -- 拼接所有部分并返回
    return table.concat(svgParts, '\n')
end

return p