using cfg.ActorCfg; using cfg.VehicleCfg; using cfg.VihecleCultivateCfg; using Framework; using PhxhSDK; using System.Collections.Generic; using Gameplay; public class VehicleCultivateDataManager : Singlenton, IInitable { public List DataList; public Dictionary DataDic; void IInitable.Init() { DataList = new List(); DataDic = new Dictionary(); } void IInitable.Release() { DataList.Clear(); DataDic.Clear(); } public void Add(Gameplay.Net.VehicleInfo info) { VehicleCultivateData info2; if (DataDic.TryGetValue(info.nID, out info2)) { DataDic[info.nID].Refresh(info); } else { info2 = new VehicleCultivateData(); info2.Refresh(info); DataList.Add(info2); DataDic[info.nID] = info2; } } public void AddAllCfgVehicles() { var allConfigList = TableManager.Instance.Tables.VehicleConfig.DataList; for (int i = 0; i < allConfigList.Count; i++) { var configItem = allConfigList[i]; var nId = (uint)configItem.ID; if (DataDic.ContainsKey(nId)) { continue; } var info2 = new VehicleCultivateData(); info2.Cfg = configItem; info2.nID = nId; DataList.Add(info2); DataDic[nId] = info2; } } public VehicleCultivateData GetVehicleCultivateData(uint selectID) { VehicleCultivateData info; if (DataDic.TryGetValue(selectID, out info)) { return info; } else { DebugUtil.LogError("该角色找不到没有Id为 {0}的载具", selectID); return null; } } } public class VehicleCultivateData : Gameplay.Net.VehicleInfo { public DataVehicle Cfg; public VehicleCultivateData(uint ID,ushort[] UpgradeCountParam) { nID = ID; for (ushort i = 0; i < UpgradeCount.Length; i++) { UpgradeCount[i] = UpgradeCountParam[i]; } } public VehicleCultivateData() { } public string Name => CommonUtils.GetLocalizeText(Cfg.NameLocal); public int Hp() { if(Cfg.Hps.Count<= UpgradeCount[(int)cfg.ActorCfg.VihecleUpgradeType.HP]) { DebugUtil.LogError("载具id为{0}的hp没有配到{1}位", Cfg.ID, UpgradeCount[(int)cfg.ActorCfg.VihecleUpgradeType.HP]); return 0; } return Cfg.Hps[UpgradeCount[(int)cfg.ActorCfg.VihecleUpgradeType.HP]]+(int)SumBonus(BonusType.Hp); } public float SumBonus(BonusType bType) { float count = 0; VehicleUpgradeBonusAttri vTable = TableManager.Instance.Tables.VehicleUpgradeBonusAttri; for (int i = 0; i < vTable.DataList.Count; i++) { if ((vTable.DataList[i].BonusType == bType) && (vTable.DataList[i].SumCount= TableManager.Instance.Tables.VehicleUpgrade.Get((int)nID, cfg.ActorCfg.VihecleUpgradeType.HP).MaxCount; } public bool IsMaxDamageLv() { return UpgradeCount[(int)cfg.ActorCfg.VihecleUpgradeType.Damage] >= TableManager.Instance.Tables.VehicleUpgrade.Get((int)nID, cfg.ActorCfg.VihecleUpgradeType.Damage).MaxCount; } public bool IsMaxMoveSpeedLv() { return UpgradeCount[(int)cfg.ActorCfg.VihecleUpgradeType.MoveSpeed - 1] >= TableManager.Instance.Tables.VehicleUpgrade.Get((int)nID, cfg.ActorCfg.VihecleUpgradeType.MoveSpeed).MaxCount; } public bool IsMaxBulletCountLv() { return UpgradeCount[(int)cfg.ActorCfg.VihecleUpgradeType.BulletCount - 1] >= TableManager.Instance.Tables.VehicleUpgrade.Get((int)nID, cfg.ActorCfg.VihecleUpgradeType.BulletCount).MaxCount; } public bool IsMaxDefenseCountLv() { return UpgradeCount[(int)cfg.ActorCfg.VihecleUpgradeType.Defense - 1] >= TableManager.Instance.Tables.VehicleUpgrade.Get((int)nID, cfg.ActorCfg.VihecleUpgradeType.Defense).MaxCount; } public string GetTerrainAdapt(BonusType terrainType)//仅供地形使用 { VehicleUpgradeBonusAttri vTable = TableManager.Instance.Tables.VehicleUpgradeBonusAttri; int terrinBonusVal=Cfg.TerrainPlain; for (int i = 0; i