2025-01-04 23:00:19 +08:00

462 lines
26 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

SoldierConfig = {};
require('Script.Global.Table.ItemTable')
require('Script.Global.Table.WeaponTable')
require('Script.Global.Table.BuffConfig')
-- 特殊体征类型
---@class ESpecialType
---@field Health int32
---@field Damage int32
---@field Speed int32
---@field Poison int32
---@field Defence int32
SoldierConfig.ESpecialType = {
Health = 1, -- 生命
Damage = 2, -- 伤害
Speed = 3, -- 移速
Poison = 4, -- 毒杀
Defence = 5, -- 防御值
Jump = 6, -- 跳跃
}
---@class ESkillType
---@field None int32
---@field Active int32
---@field Passive int32
SoldierConfig.ESkillType = {
None = 0,
Active = 1,
Passive = 2,
}
---@type table<ESpecialType, string>
SoldierConfig.ESpecialTypeName = {
[SoldierConfig.ESpecialType.Health] = "生命";
[SoldierConfig.ESpecialType.Damage] = "伤害";
[SoldierConfig.ESpecialType.Speed] = "移速";
[SoldierConfig.ESpecialType.Poison] = "免疫";
[SoldierConfig.ESpecialType.Defence] = "护甲";
[SoldierConfig.ESpecialType.Jump] = "跳跃";
}
-- 技术分
---@class TechnologyType
---@field Kill int32
---@field RoundWin int32
---@field Survive int32
---@field Recovery int32
---@field TrapDamage int32
SoldierConfig.TechnologyType = {
Kill = 1, -- 击杀
RoundWin = 2, -- 回合胜利
Survive = 3, -- 存活
Recovery = 4, -- 恢复
TrapDamage = 5, -- 陷阱伤害
}
-- 兵种
---@class ESoldierType
---@field SuicideSquad int32
---@field Sniper int32
---@field Rifleman int32
---@field MedicalCorps int32
---@field Demolitions int32
---@field Scout int32
---@field Commander int32
---@field Volunteer int32
---@field SpecialSoldier int32
---@field AntichemicalCorp int32
---@field HeavyCorp int32
SoldierConfig.ESoldierType = {
SuicideSquad = 1, -- 敢死队
Sniper = 2, -- 狙击手
Rifleman = 3, -- 突击兵
MedicalCorps = 4, -- 医疗兵
Demolitions = 5, -- 爆破兵
Commander = 6, -- 指挥官
Volunteer = 7, -- 志愿兵
SpecialSoldier = 8, -- 特战兵
AntichemicalCorp = 9, -- 防化兵
HeavyCorp = 10, -- 重装兵
Archer = 11, -- 弓箭手
Musketeer = 12, -- 火枪手
Scout = 13, -- 侦察兵
}
---@param InType ESoldierType
---@return string Soldier Name
function SoldierConfig.GetSoldierName(InType)
for i, v in pairs(SoldierConfig.ESoldierType) do
if v == InType then return i; end
end
return '';
end
-- 中文名
---@type table<ESoldierType, string>
SoldierConfig.Chinese = {
[SoldierConfig.ESoldierType.SuicideSquad] = "冲锋兵",
[SoldierConfig.ESoldierType.Sniper] = "狙击手",
[SoldierConfig.ESoldierType.Rifleman] = "突击兵",
[SoldierConfig.ESoldierType.MedicalCorps] = "医疗兵",
[SoldierConfig.ESoldierType.Demolitions] = "爆破兵",
[SoldierConfig.ESoldierType.Scout] = "侦察兵",
[SoldierConfig.ESoldierType.Commander] = "指挥官",
[SoldierConfig.ESoldierType.Volunteer] = "支援兵",
[SoldierConfig.ESoldierType.SpecialSoldier] = "特战兵",
[SoldierConfig.ESoldierType.AntichemicalCorp] = "防化兵",
[SoldierConfig.ESoldierType.HeavyCorp] = "重装兵",
[SoldierConfig.ESoldierType.Archer] = "弓箭手",
[SoldierConfig.ESoldierType.Musketeer] = "火枪手",
}
---@type table<ESoldierType, string>
SoldierConfig.SoldierIcon = {
[SoldierConfig.ESoldierType.SuicideSquad] = UGCGameSystem.GetUGCResourcesFullPath('Asset/Art/UITexture/Soldier/Soldier2.Soldier2'),
[SoldierConfig.ESoldierType.Sniper] = UGCGameSystem.GetUGCResourcesFullPath('Asset/Art/UITexture/Soldier/Soldier12.Soldier12'),
[SoldierConfig.ESoldierType.Rifleman] = UGCGameSystem.GetUGCResourcesFullPath('Asset/Art/UITexture/Soldier/Soldier1.Soldier1'),
[SoldierConfig.ESoldierType.MedicalCorps] = UGCGameSystem.GetUGCResourcesFullPath('Asset/Art/UITexture/Soldier/Soldier5.Soldier5'),
[SoldierConfig.ESoldierType.Demolitions] = UGCGameSystem.GetUGCResourcesFullPath('Asset/Art/UITexture/Soldier/Soldier14.Soldier14'),
[SoldierConfig.ESoldierType.Scout] = UGCGameSystem.GetUGCResourcesFullPath('Asset/Art/UITexture/Soldier/Soldier4.Soldier4'),
[SoldierConfig.ESoldierType.Commander] = UGCGameSystem.GetUGCResourcesFullPath('Asset/Art/UITexture/Soldier/Soldier9.Soldier9'),
[SoldierConfig.ESoldierType.Volunteer] = UGCGameSystem.GetUGCResourcesFullPath('Asset/Art/UITexture/Soldier/Soldier15.Soldier15'),
[SoldierConfig.ESoldierType.SpecialSoldier] = UGCGameSystem.GetUGCResourcesFullPath('Asset/Art/UITexture/Soldier/Soldier10.Soldier10'),
[SoldierConfig.ESoldierType.AntichemicalCorp] = UGCGameSystem.GetUGCResourcesFullPath('Asset/Art/UITexture/Soldier/Soldier8.Soldier8'),
[SoldierConfig.ESoldierType.HeavyCorp] = UGCGameSystem.GetUGCResourcesFullPath('Asset/Art/UITexture/Soldier/Soldier7.Soldier7'),
[SoldierConfig.ESoldierType.Archer] = UGCGameSystem.GetUGCResourcesFullPath('Asset/Art/UITexture/Soldier/Soldier13.Soldier13'),
[SoldierConfig.ESoldierType.Musketeer] = UGCGameSystem.GetUGCResourcesFullPath('Asset/Art/UITexture/Soldier/Soldier6.Soldier6'),
}
-- 武器限制
---@type table<ESoldierType, table<EWeaponTypeNew>> 限制的武器类型
SoldierConfig.WeaponLimits = {
[SoldierConfig.ESoldierType.SuicideSquad] = { EWeaponTypeNew.EWeaponTypeNew_Melee },
[SoldierConfig.ESoldierType.Sniper] = { EWeaponTypeNew.EWeaponTypeNew_SingleShotSniper, EWeaponTypeNew.EWeaponTypeNew_BurstShotSniper, },
[SoldierConfig.ESoldierType.Rifleman] = { EWeaponTypeNew.EWeaponTypeNew_Rifle, EWeaponTypeNew.EWeaponTypeNew_Submachine, },
[SoldierConfig.ESoldierType.MedicalCorps] = { EWeaponTypeNew.EWeaponTypeNew_Rifle, EWeaponTypeNew.EWeaponTypeNew_Submachine, },
[SoldierConfig.ESoldierType.Demolitions] = { EWeaponTypeNew.EWeaponTypeNew_Submachine, },
[SoldierConfig.ESoldierType.Scout] = { EWeaponTypeNew.EWeaponTypeNew_Pistol, },
[SoldierConfig.ESoldierType.Commander] = { EWeaponTypeNew.EWeaponTypeNew_Pistol, EWeaponTypeNew.EWeaponTypeNew_Rifle, },
[SoldierConfig.ESoldierType.Volunteer] = { EWeaponTypeNew.EWeaponTypeNew_MachineGun, },
[SoldierConfig.ESoldierType.SpecialSoldier] = { EWeaponTypeNew.EWeaponTypeNew_Special, EWeaponTypeNew.EWeaponTypeNew_Pistol, },
[SoldierConfig.ESoldierType.AntichemicalCorp] = { EWeaponTypeNew.EWeaponTypeNew_SingleShotSniper, EWeaponTypeNew.EWeaponTypeNew_BurstShotSniper, },
[SoldierConfig.ESoldierType.HeavyCorp] = { EWeaponTypeNew.EWeaponTypeNew_MachineGun, },
[SoldierConfig.ESoldierType.Archer] = { EWeaponTypeNew.EWeaponTypeNew_Crossbow, },
[SoldierConfig.ESoldierType.Musketeer] = { EWeaponTypeNew.EWeaponTypeNew_ShotGun, },
}
---@type table<ESoldierType, int32> 武器数量
SoldierConfig.WeaponCount = {
[SoldierConfig.ESoldierType.SuicideSquad] = 1,
[SoldierConfig.ESoldierType.Sniper] = 1,
[SoldierConfig.ESoldierType.Rifleman] = 1,
[SoldierConfig.ESoldierType.MedicalCorps] = 1,
[SoldierConfig.ESoldierType.Demolitions] = 1,
[SoldierConfig.ESoldierType.Scout] = 1,
[SoldierConfig.ESoldierType.Commander] = 2,
[SoldierConfig.ESoldierType.Volunteer] = 1,
[SoldierConfig.ESoldierType.SpecialSoldier] = 2,
[SoldierConfig.ESoldierType.AntichemicalCorp] = 1,
[SoldierConfig.ESoldierType.HeavyCorp] = 1,
[SoldierConfig.ESoldierType.Archer] = 1,
[SoldierConfig.ESoldierType.Musketeer] = 1,
};
---@type table<ESoldierType, table<int>>
SoldierConfig.WeaponSet = {
-- 特战兵
[SoldierConfig.ESoldierType.SpecialSoldier] = {
{ 106002, 107002, };
{ 106001, 107002, };
{ 106002, 107094, };
{ 106001, 107094, };
{ 106006, 107098, };
},
--- 指挥官
[SoldierConfig.ESoldierType.Commander] = {
[1] = { 101001, 106002 };
[2] = { 101001, 106006 };
[3] = { 101003, 106001 };
[4] = { 101009, 106001 };
[5] = { 101006, 106001 };
[6] = { 101008, 106002 };
},
};
-- 特性
---@type table<ESoldierType, table<ESpecialType, float>>
SoldierConfig.Features = {
[SoldierConfig.ESoldierType.SuicideSquad] = { [SoldierConfig.ESpecialType.Health] = 1.5, [SoldierConfig.ESpecialType.Damage] = 1.5, [SoldierConfig.ESpecialType.Speed] = 1.5, },
[SoldierConfig.ESoldierType.Sniper] = { [SoldierConfig.ESpecialType.Damage] = 2.0, },
[SoldierConfig.ESoldierType.Rifleman] = {},
[SoldierConfig.ESoldierType.MedicalCorps] = { [SoldierConfig.ESpecialType.Health] = 1.5, [SoldierConfig.ESpecialType.Poison] = 1.5, },
[SoldierConfig.ESoldierType.Demolitions] = {},
[SoldierConfig.ESoldierType.Scout] = { [SoldierConfig.ESpecialType.Health] = 1.2, [SoldierConfig.ESpecialType.Damage] = 1.2, [SoldierConfig.ESpecialType.Speed] = 1.5, [SoldierConfig.ESpecialType.Jump] = 1.5 },
[SoldierConfig.ESoldierType.Commander] = {},
[SoldierConfig.ESoldierType.Volunteer] = {},
[SoldierConfig.ESoldierType.SpecialSoldier] = {},
[SoldierConfig.ESoldierType.AntichemicalCorp] = { [SoldierConfig.ESpecialType.Poison] = 0.75, },
[SoldierConfig.ESoldierType.HeavyCorp] = { [SoldierConfig.ESpecialType.Health] = 2, [SoldierConfig.ESpecialType.Damage] = 1.2, [SoldierConfig.ESpecialType.Speed] = 0.75, },
[SoldierConfig.ESoldierType.Archer] = {},
[SoldierConfig.ESoldierType.Musketeer] = { [SoldierConfig.ESpecialType.Health] = 1.2, },
};
--- 描述
---@type table<ESoldierType, string>
SoldierConfig.Descs = {
[SoldierConfig.ESoldierType.SuicideSquad] = "血厚-高伤-高移速",
[SoldierConfig.ESoldierType.Sniper] = "伤害非常高",
[SoldierConfig.ESoldierType.Rifleman] = "呼吸恢复",
[SoldierConfig.ESoldierType.MedicalCorps] = "奶妈",
[SoldierConfig.ESoldierType.Demolitions] = "高爆手雷",
[SoldierConfig.ESoldierType.Scout] = "移速非常快",
[SoldierConfig.ESoldierType.Commander] = "全队强化",
[SoldierConfig.ESoldierType.Volunteer] = "无限子弹",
[SoldierConfig.ESoldierType.SpecialSoldier] = "特殊武器",
[SoldierConfig.ESoldierType.AntichemicalCorp] = "免疫增加",
[SoldierConfig.ESoldierType.HeavyCorp] = "血厚-高伤-移速慢",
[SoldierConfig.ESoldierType.Archer] = "爆炸弩箭",
[SoldierConfig.ESoldierType.Musketeer] = "近战之神",
};
--- 技术分
---@type table<ESoldierType, table<TechnologyType, int32>>
SoldierConfig.Scores = {
[SoldierConfig.ESoldierType.SuicideSquad] = { [SoldierConfig.TechnologyType.Kill] = 5, [SoldierConfig.TechnologyType.RoundWin] = 1, },
[SoldierConfig.ESoldierType.Sniper] = { [SoldierConfig.TechnologyType.Kill] = 3, [SoldierConfig.TechnologyType.Survive] = 2, },
[SoldierConfig.ESoldierType.Rifleman] = { [SoldierConfig.TechnologyType.Kill] = 3, [SoldierConfig.TechnologyType.Survive] = 2, },
[SoldierConfig.ESoldierType.MedicalCorps] = { [SoldierConfig.TechnologyType.Kill] = 3, [SoldierConfig.TechnologyType.Survive] = 1, [SoldierConfig.TechnologyType.Recovery] = 1, },
[SoldierConfig.ESoldierType.Demolitions] = { [SoldierConfig.TechnologyType.Kill] = 3, [SoldierConfig.TechnologyType.Survive] = 1, [SoldierConfig.TechnologyType.TrapDamage] = 1, },
[SoldierConfig.ESoldierType.Scout] = { [SoldierConfig.TechnologyType.Kill] = 4, [SoldierConfig.TechnologyType.Survive] = 1, [SoldierConfig.TechnologyType.RoundWin] = 1, },
[SoldierConfig.ESoldierType.Commander] = { [SoldierConfig.TechnologyType.Kill] = 3, [SoldierConfig.TechnologyType.Survive] = 1, [SoldierConfig.TechnologyType.RoundWin] = 2, },
[SoldierConfig.ESoldierType.Volunteer] = { [SoldierConfig.TechnologyType.Kill] = 2, [SoldierConfig.TechnologyType.Survive] = 1, [SoldierConfig.TechnologyType.RoundWin] = 1, },
[SoldierConfig.ESoldierType.SpecialSoldier] = { [SoldierConfig.TechnologyType.Kill] = 3, [SoldierConfig.TechnologyType.RoundWin] = 2, },
[SoldierConfig.ESoldierType.AntichemicalCorp] = { [SoldierConfig.TechnologyType.Kill] = 2, [SoldierConfig.TechnologyType.Survive] = 3, },
[SoldierConfig.ESoldierType.HeavyCorp] = { [SoldierConfig.TechnologyType.Kill] = 2, [SoldierConfig.TechnologyType.RoundWin] = 2, },
[SoldierConfig.ESoldierType.Archer] = { [SoldierConfig.TechnologyType.Kill] = 2, [SoldierConfig.TechnologyType.RoundWin] = 2, },
[SoldierConfig.ESoldierType.Musketeer] = { [SoldierConfig.TechnologyType.Kill] = 2, [SoldierConfig.TechnologyType.RoundWin] = 2, },
};
--- 兵种拥有的炸弹类型
---@type table<ESoldierType, table<EBombType, int32>>
SoldierConfig.Bombs = { -- 手榴弹 燃烧瓶 震爆弹 烟雾弹
[SoldierConfig.ESoldierType.SuicideSquad] = { [EBombType.Grenade] = 1, [EBombType.FireBomb] = 1, [EBombType.StunGrenade] = 1, [EBombType.SmokeBomb] = 0, },
[SoldierConfig.ESoldierType.Sniper] = { [EBombType.Grenade] = 1, [EBombType.FireBomb] = 1, [EBombType.StunGrenade] = 0, [EBombType.SmokeBomb] = 1, },
[SoldierConfig.ESoldierType.Rifleman] = { [EBombType.Grenade] = 1, [EBombType.FireBomb] = 1, [EBombType.StunGrenade] = 0, [EBombType.SmokeBomb] = 1, },
[SoldierConfig.ESoldierType.MedicalCorps] = { [EBombType.Grenade] = 1, [EBombType.FireBomb] = 1, [EBombType.StunGrenade] = 0, [EBombType.SmokeBomb] = 1, },
[SoldierConfig.ESoldierType.Demolitions] = { [EBombType.Grenade] = 4, [EBombType.FireBomb] = 3, [EBombType.StunGrenade] = 2, [EBombType.SmokeBomb] = 1, },
[SoldierConfig.ESoldierType.Scout] = { [EBombType.Grenade] = 1, [EBombType.FireBomb] = 1, [EBombType.StunGrenade] = 0, [EBombType.SmokeBomb] = 1, },
[SoldierConfig.ESoldierType.Commander] = { [EBombType.Grenade] = 1, [EBombType.FireBomb] = 1, [EBombType.StunGrenade] = 0, [EBombType.SmokeBomb] = 1, },
[SoldierConfig.ESoldierType.Volunteer] = { [EBombType.Grenade] = 1, [EBombType.FireBomb] = 1, [EBombType.StunGrenade] = 0, [EBombType.SmokeBomb] = 1, },
[SoldierConfig.ESoldierType.SpecialSoldier] = { [EBombType.Grenade] = 1, [EBombType.FireBomb] = 1, [EBombType.StunGrenade] = 0, [EBombType.SmokeBomb] = 1, },
[SoldierConfig.ESoldierType.AntichemicalCorp] = { [EBombType.Grenade] = 1, [EBombType.FireBomb] = 1, [EBombType.StunGrenade] = 0, [EBombType.SmokeBomb] = 2, },
[SoldierConfig.ESoldierType.HeavyCorp] = { [EBombType.Grenade] = 1, [EBombType.FireBomb] = 1, [EBombType.StunGrenade] = 0, [EBombType.SmokeBomb] = 1, },
[SoldierConfig.ESoldierType.Archer] = { [EBombType.Grenade] = 1, [EBombType.FireBomb] = 1, [EBombType.StunGrenade] = 0, [EBombType.SmokeBomb] = 1, },
[SoldierConfig.ESoldierType.Musketeer] = { [EBombType.Grenade] = 1, [EBombType.FireBomb] = 1, [EBombType.StunGrenade] = 0, [EBombType.SmokeBomb] = 1, },
};
--- 兵种拥有的药品
---@type table<ESoldierType, table<EMedicationType, int32>>
SoldierConfig.Medications = {
[SoldierConfig.ESoldierType.SuicideSquad] = { [EMedicationType.Beverage] = 1, [EMedicationType.Adrenaline] = 0, [EMedicationType.Painkiller] = 1, [EMedicationType.Bandage] = 2, [EMedicationType.FirstAidKit] = 0, },
[SoldierConfig.ESoldierType.Sniper] = { [EMedicationType.Beverage] = 1, [EMedicationType.Adrenaline] = 0, [EMedicationType.Painkiller] = 1, [EMedicationType.Bandage] = 5, [EMedicationType.FirstAidKit] = 1, },
[SoldierConfig.ESoldierType.Rifleman] = { [EMedicationType.Beverage] = 1, [EMedicationType.Adrenaline] = 0, [EMedicationType.Painkiller] = 1, [EMedicationType.Bandage] = 5, [EMedicationType.FirstAidKit] = 1, },
[SoldierConfig.ESoldierType.MedicalCorps] = { [EMedicationType.Beverage] = 1, [EMedicationType.Adrenaline] = 0, [EMedicationType.Painkiller] = 1, [EMedicationType.Bandage] = 2, [EMedicationType.FirstAidKit] = 1, },
[SoldierConfig.ESoldierType.Demolitions] = { [EMedicationType.Beverage] = 1, [EMedicationType.Adrenaline] = 0, [EMedicationType.Painkiller] = 1, [EMedicationType.Bandage] = 5, [EMedicationType.FirstAidKit] = 1, },
[SoldierConfig.ESoldierType.Scout] = { [EMedicationType.Beverage] = 2, [EMedicationType.Adrenaline] = 1, [EMedicationType.Painkiller] = 2, [EMedicationType.Bandage] = 5, [EMedicationType.FirstAidKit] = 2, },
[SoldierConfig.ESoldierType.Commander] = { [EMedicationType.Beverage] = 1, [EMedicationType.Adrenaline] = 0, [EMedicationType.Painkiller] = 1, [EMedicationType.Bandage] = 5, [EMedicationType.FirstAidKit] = 1, },
[SoldierConfig.ESoldierType.Volunteer] = { [EMedicationType.Beverage] = 1, [EMedicationType.Adrenaline] = 0, [EMedicationType.Painkiller] = 1, [EMedicationType.Bandage] = 5, [EMedicationType.FirstAidKit] = 1, },
[SoldierConfig.ESoldierType.SpecialSoldier] = { [EMedicationType.Beverage] = 1, [EMedicationType.Adrenaline] = 0, [EMedicationType.Painkiller] = 1, [EMedicationType.Bandage] = 5, [EMedicationType.FirstAidKit] = 1, },
[SoldierConfig.ESoldierType.AntichemicalCorp] = { [EMedicationType.Beverage] = 1, [EMedicationType.Adrenaline] = 0, [EMedicationType.Painkiller] = 1, [EMedicationType.Bandage] = 5, [EMedicationType.FirstAidKit] = 1, },
[SoldierConfig.ESoldierType.HeavyCorp] = { [EMedicationType.Beverage] = 1, [EMedicationType.Adrenaline] = 0, [EMedicationType.Painkiller] = 1, [EMedicationType.Bandage] = 5, [EMedicationType.FirstAidKit] = 1, },
[SoldierConfig.ESoldierType.Archer] = { [EMedicationType.Beverage] = 1, [EMedicationType.Adrenaline] = 0, [EMedicationType.Painkiller] = 1, [EMedicationType.Bandage] = 5, [EMedicationType.FirstAidKit] = 1, },
[SoldierConfig.ESoldierType.Musketeer] = { [EMedicationType.Beverage] = 2, [EMedicationType.Adrenaline] = 0, [EMedicationType.Painkiller] = 1, [EMedicationType.Bandage] = 5, [EMedicationType.FirstAidKit] = 1, },
}
---@type table<ESoldierType, DefenceItem> 兵种拥有的护甲
SoldierConfig.DefenceItems = {
[SoldierConfig.ESoldierType.SuicideSquad] = { Armor = EArmorType.Armor1, Helmet = EHelmetType.Helmet1, Bag = EBagType.Bag1, },
[SoldierConfig.ESoldierType.Sniper] = { Armor = EArmorType.Armor3, Helmet = EHelmetType.Helmet3, Bag = EBagType.Bag1, },
[SoldierConfig.ESoldierType.Rifleman] = { Armor = EArmorType.Armor2, Helmet = EHelmetType.Helmet2, Bag = EBagType.Bag1, },
[SoldierConfig.ESoldierType.MedicalCorps] = { Armor = EArmorType.Armor2, Helmet = EHelmetType.Helmet2, Bag = EBagType.Bag1, },
[SoldierConfig.ESoldierType.Demolitions] = { Armor = EArmorType.Armor2, Helmet = EHelmetType.Helmet2, Bag = EBagType.Bag1, },
[SoldierConfig.ESoldierType.Scout] = { Armor = EArmorType.Armor1, Helmet = EHelmetType.Helmet1, Bag = EBagType.Bag1, },
[SoldierConfig.ESoldierType.Commander] = { Armor = EArmorType.Armor2, Helmet = EHelmetType.Helmet3, Bag = EBagType.Bag1, },
[SoldierConfig.ESoldierType.Volunteer] = { Armor = EArmorType.Armor2, Helmet = EHelmetType.Helmet2, Bag = EBagType.Bag1, },
[SoldierConfig.ESoldierType.SpecialSoldier] = { Armor = EArmorType.Armor2, Helmet = EHelmetType.Helmet2, Bag = EBagType.Bag1, },
[SoldierConfig.ESoldierType.AntichemicalCorp] = { Armor = EArmorType.Armor3, Helmet = EHelmetType.Helmet2, Bag = EBagType.Bag1, },
[SoldierConfig.ESoldierType.HeavyCorp] = { Armor = EArmorType.Armor3, Helmet = EHelmetType.Helmet3, Bag = EBagType.Bag1, },
[SoldierConfig.ESoldierType.Archer] = { Armor = EArmorType.Armor2, Helmet = EHelmetType.Helmet2, Bag = EBagType.Bag1, },
[SoldierConfig.ESoldierType.Musketeer] = { Armor = EArmorType.Armor3, Helmet = EHelmetType.Helmet3, Bag = EBagType.Bag1, },
};
--- 是否是初始就可以选择的兵种
---@type table<ESoldierType, bool>
SoldierConfig.InitShowTypes = {
[SoldierConfig.ESoldierType.SuicideSquad] = true,
[SoldierConfig.ESoldierType.Sniper] = true,
[SoldierConfig.ESoldierType.Rifleman] = true,
[SoldierConfig.ESoldierType.MedicalCorps] = true,
[SoldierConfig.ESoldierType.Demolitions] = true,
[SoldierConfig.ESoldierType.Scout] = true,
[SoldierConfig.ESoldierType.Commander] = true,
[SoldierConfig.ESoldierType.Volunteer] = true,
[SoldierConfig.ESoldierType.SpecialSoldier] = true,
[SoldierConfig.ESoldierType.AntichemicalCorp] = true,
[SoldierConfig.ESoldierType.HeavyCorp] = true,
[SoldierConfig.ESoldierType.Archer] = true,
[SoldierConfig.ESoldierType.Musketeer] = true,
}
--- 解锁需要的金币数
---@type table<ESoldierType, int32>
SoldierConfig.UnlockScore = {
[SoldierConfig.ESoldierType.SuicideSquad] = { Score = 10 },
[SoldierConfig.ESoldierType.Sniper] = { Score = 10 },
[SoldierConfig.ESoldierType.Rifleman] = { Score = 10 },
[SoldierConfig.ESoldierType.MedicalCorps] = { Score = 50 },
[SoldierConfig.ESoldierType.Demolitions] = { Score = 20 },
[SoldierConfig.ESoldierType.Scout] = { Score = 30 },
[SoldierConfig.ESoldierType.Commander] = { Score = 10 },
[SoldierConfig.ESoldierType.Volunteer] = { Score = 10 },
[SoldierConfig.ESoldierType.SpecialSoldier] = { Score = 10 },
[SoldierConfig.ESoldierType.AntichemicalCorp] = { Score = 60 },
[SoldierConfig.ESoldierType.Musketeer] = { Score = 40 },
[SoldierConfig.ESoldierType.Archer] = { Score = 40 },
[SoldierConfig.ESoldierType.HeavyCorp] = { Score = 40 },
};
---@type table<ESoldierType, string> 描述
SoldierConfig.SoldierDesc = {
[SoldierConfig.ESoldierType.SuicideSquad] = "勇猛向前,无惧困难\n技能:无敌\n可在短时间内无敌",
[SoldierConfig.ESoldierType.Sniper] = "不瞒你说,素有鹰眼之称\n技能:鹰眼\n己方可以看到敌方玩家的位置",
[SoldierConfig.ESoldierType.Rifleman] = "满血俺向前,残血俺就跑\n技能:呼吸回血\n脱离战斗几秒后回血",
[SoldierConfig.ESoldierType.MedicalCorps] = "没事,有我呢!\n技能:全体治疗\n瞬间治疗,其他医疗兵回复减半",
[SoldierConfig.ESoldierType.Demolitions] = "艺术就是爆炸\n特征:拥有更多的炸弹,投掷物伤害增强",
[SoldierConfig.ESoldierType.Scout] = "小喽啰一枚",
[SoldierConfig.ESoldierType.Commander] = "好好干,明年就给你加薪!\n技能:提升士气\n全队攻击力提升1.3倍",
[SoldierConfig.ESoldierType.Volunteer] = "数量没输过,伤害没赢过\n技能:无限子弹",
[SoldierConfig.ESoldierType.SpecialSoldier] = "没有任何困难是RPG解决不了的\n特征:拥有两把武器",
[SoldierConfig.ESoldierType.AntichemicalCorp] = "安全区外很安全!\n技能:一段时间内无视安全区的效果",
[SoldierConfig.ESoldierType.HeavyCorp] = "主打的就是一个安全感\n技能全队防御力提升0.5倍",
[SoldierConfig.ESoldierType.Archer] = "我有一箭!!\n特征:弓箭在落地会爆炸",
[SoldierConfig.ESoldierType.Musketeer] = "真男人不需要解释",
};
--- 技能
---@type table<ESoldierType, SoldierSkillItem>
SoldierConfig.Skills = {
[SoldierConfig.ESoldierType.SuicideSquad] = {
SkillType = SoldierConfig.ESkillType.Active,
Skills = {
[1] = {
BuffType = BuffConfig.EBuffType.Invincible, -- 无敌
ContinueTime = 4,
Cooldown = 22,
},
},
},
[SoldierConfig.ESoldierType.Sniper] = {
SkillType = SoldierConfig.ESkillType.Active,
ContinueTime = 4,
Skills = {
[1] = {
BuffType = BuffConfig.EBuffType.ShowEnemyPos, -- 显示敌方位置
ContinueTime = 4,
Cooldown = 22,
},
},
},
[SoldierConfig.ESoldierType.Rifleman] = {
SkillType = SoldierConfig.ESkillType.Passive,
Skills = {
[1] = {
BuffType = BuffConfig.EBuffType.SingleRespiratoryRegurgitation, -- 呼吸回血
-- 受伤延迟间隔
InHitDelayExecution = 5,
-- 每秒回复
InRecoveryPerSecond = 8,
},
},
},
[SoldierConfig.ESoldierType.MedicalCorps] = {
SkillType = SoldierConfig.ESkillType.Active,
Skills = {
[1] = {
BuffType = BuffConfig.EBuffType.Regurgitation, -- 回血
Cooldown = 30,
Params = { 10000, 0.7, }, -- 距离,自己加血,别人加血
},
},
},
[SoldierConfig.ESoldierType.Demolitions] = {
SkillType = SoldierConfig.ESkillType.None,
Damage = 1.5;
Skills = {};
},
[SoldierConfig.ESoldierType.Scout] = {
SkillType = SoldierConfig.ESkillType.None,
Skills = {};
},
[SoldierConfig.ESoldierType.Commander] = {
SkillType = SoldierConfig.ESkillType.Active,
Skills = {
[1] = {
BuffType = BuffConfig.EBuffType.Strengthen, -- 全队攻击力变强
ContinueTime = 6,
Cooldown = 15,
Params = { 1.3 },
},
};
},
[SoldierConfig.ESoldierType.Volunteer] = {
SkillType = SoldierConfig.ESkillType.Passive,
Skills = {
[1] = {
BuffType = BuffConfig.EBuffType.InfiniteBullets, -- 无限子弹(需要换弹夹)
Params = { EFillBulletType.ClipInfinite, nil, },
},
};
},
[SoldierConfig.ESoldierType.SpecialSoldier] = {
SkillType = SoldierConfig.ESkillType.None,
Skills = {};
},
[SoldierConfig.ESoldierType.AntichemicalCorp] = {
SkillType = SoldierConfig.ESkillType.Active,
Skills = {
[1] = {
BuffType = BuffConfig.EBuffType.IgnorePoison, -- 自己无视毒圈
ContinueTime = 4,
Cooldown = 25,
Params = { false, 0. },
},
};
},
[SoldierConfig.ESoldierType.HeavyCorp] = {
SkillType = SoldierConfig.ESkillType.Active,
Skills = {
[1] = {
BuffType = BuffConfig.EBuffType.DefenceChange, -- 全队防御力增强
Cooldown = 4,
ContinueTime = 22,
Params = { true, 0.66667 },
},
};
},
[SoldierConfig.ESoldierType.Musketeer] = {
SkillType = SoldierConfig.ESkillType.None,
Skills = {};
},
[SoldierConfig.ESoldierType.Archer] = {
SkillType = SoldierConfig.ESkillType.Passive,
Skills = {
[1] = {
BuffType = BuffConfig.EBuffType.BombExplosion, -- 全队防御力增强
},
};
},
};