Skip to content

Latest commit

 

History

History
191 lines (176 loc) · 5.75 KB

CONVERSION_EXAMPLES.md

File metadata and controls

191 lines (176 loc) · 5.75 KB

Conversion Examples

Some examples that show how to convert code from PoB's Lua to Go

Convenient Lua beautifier: https://goonlinetools.com/lua-beautifier/


if grantedEffect.skillTypes[SkillType.Buff] or grantedEffect.baseFlags.buff then
    preSkillNameList["^" .. skillName:lower() .. " grants "] = {
        addToSkill = {type = "SkillName", skillName = skillName},
        tag = {type = "GlobalEffect", effectType = "Buff"}
    }
    preSkillNameList["^" .. skillName:lower() .. " grants a?n? ?additional "] = {
        addToSkill = {type = "SkillName", skillName = skillName},
        tag = {type = "GlobalEffect", effectType = "Buff"}
    }
end
baseFlags, _ := grantedEffect.GetActiveSkill().GetActiveSkillBaseFlagsAndTypes()
if slices.Contains(grantedEffect.GetActiveSkill().ActiveSkillTypes, poe.ActiveSkillTypesByID["Buff"].Key) || baseFlags[poe.SkillFlagBuffs] {
    preSkillNameListCompiled["^"+skillNameLower+" grants "] = CompiledList[modNameListType]{
        Regex: regexp.MustCompile("^" + skillNameLower + " grants "),
        Value: modNameListType{
            addToSkill: mod.SkillName(skillName),
            tag:        mod.GlobalEffect("Buff"),
        },
    }

    preSkillNameListCompiled["^"+skillNameLower+" grants a?n? ?additional "] = CompiledList[modNameListType]{
        Regex: regexp.MustCompile("^" + skillNameLower + " grants a?n? ?additional "),
        Value: modNameListType{
            addToSkill: mod.SkillName(skillName),
            tag:        mod.GlobalEffect("Buff"),
        },
    }
}

c["20% chance to Trigger Level 20 Shade Form when you Use a Socketed Skill"] = {
    {
        [1] = {
            flags = 0,
            keywordFlags = 0,
            name = "ExtraSkill",
            type = "LIST",
            value = {level = 20, skillId = "ShadeForm", triggered = true}
        }
    },
    nil
}
{
	line: "20% chance to Trigger Level 20 Shade Form when you Use a Socketed Skill",
	mods: []mod.Mod{mod.NewList("ExtraSkill", mod.ExtraSkill{Level: 20, SkillID: "ShadeForm", Triggered: true})},
}

c["Zealotry has no Reservation"] = {
    {
        [1] = {
            [1] = {skillId = "SpellDamageAura", type = "SkillId"},
            flags = 0,
            keywordFlags = 0,
            name = "SkillData",
            type = "LIST",
            value = {key = "manaReservationFlat", value = 0}
        },
        [2] = {
            [1] = {skillId = "SpellDamageAura", type = "SkillId"},
            flags = 0,
            keywordFlags = 0,
            name = "SkillData",
            type = "LIST",
            value = {key = "lifeReservationFlat", value = 0}
        },
        [3] = {
            [1] = {skillId = "SpellDamageAura", type = "SkillId"},
            flags = 0,
            keywordFlags = 0,
            name = "SkillData",
            type = "LIST",
            value = {key = "manaReservationPercent", value = 0}
        },
        [4] = {
            [1] = {skillId = "SpellDamageAura", type = "SkillId"},
            flags = 0,
            keywordFlags = 0,
            name = "SkillData",
            type = "LIST",
            value = {key = "lifeReservationPercent", value = 0}
        }
    },
    nil
}
{
	line: "Zealotry has no Reservation",
	mods: []mod.Mod{
		mod.NewList("SkillData", mod.SkillData{Key: "manaReservationFlat", Value: 0}).Tag(mod.SkillId("SkillId")),
		mod.NewList("SkillData", mod.SkillData{Key: "lifeReservationFlat", Value: 0}).Tag(mod.SkillId("SkillId")),
		mod.NewList("SkillData", mod.SkillData{Key: "manaReservationPercent", Value: 0}).Tag(mod.SkillId("SkillId")),
		mod.NewList("SkillData", mod.SkillData{Key: "lifeReservationPercent", Value: 0}).Tag(mod.SkillId("SkillId")),
	},
},

c["30% increased Effect of Non-Damaging Ailments you inflict during Flask Effect"] = {
    {
        [1] = {
            [1] = {type = "Condition", var = "UsingFlask"},
            flags = 0,
            keywordFlags = 0,
            name = "EnemyShockEffect",
            type = "INC",
            value = 30
        },
        [2] = {
            [1] = {type = "Condition", var = "UsingFlask"},
            flags = 0,
            keywordFlags = 0,
            name = "EnemyChillEffect",
            type = "INC",
            value = 30
        },
        [3] = {
            [1] = {type = "Condition", var = "UsingFlask"},
            flags = 0,
            keywordFlags = 0,
            name = "EnemyFreezeEffect",
            type = "INC",
            value = 30
        },
        [4] = {
            [1] = {type = "Condition", var = "UsingFlask"},
            flags = 0,
            keywordFlags = 0,
            name = "EnemyScorchEffect",
            type = "INC",
            value = 30
        },
        [5] = {
            [1] = {type = "Condition", var = "UsingFlask"},
            flags = 0,
            keywordFlags = 0,
            name = "EnemyBrittleEffect",
            type = "INC",
            value = 30
        },
        [6] = {
            [1] = {type = "Condition", var = "UsingFlask"},
            flags = 0,
            keywordFlags = 0,
            name = "EnemySapEffect",
            type = "INC",
            value = 30
        }
    },
    nil
}
{
	line: "Zealotry has no Reservation",
	mods: []mod.Mod{
		mod.NewFloat("EnemyShockEffect", mod.TypeIncrease, 30).Tag(mod.Condition("UsingFlask")),
		mod.NewFloat("EnemyChillEffect", mod.TypeIncrease, 30).Tag(mod.Condition("UsingFlask")),
		mod.NewFloat("EnemyFreezeEffect", mod.TypeIncrease, 30).Tag(mod.Condition("UsingFlask")),
		mod.NewFloat("EnemyScorchEffect", mod.TypeIncrease, 30).Tag(mod.Condition("UsingFlask")),
		mod.NewFloat("EnemyBrittleEffect", mod.TypeIncrease, 30).Tag(mod.Condition("UsingFlask")),
		mod.NewFloat("EnemySapEffect", mod.TypeIncrease, 30).Tag(mod.Condition("UsingFlask")),
	},
},