462 lines
26 KiB
Lua
462 lines
26 KiB
Lua
|
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, -- 全队防御力增强
|
|||
|
},
|
|||
|
};
|
|||
|
},
|
|||
|
};
|