【载具】修改战斗内炮台创建机制
parent
6b9fc390c1
commit
7daddb5ba3
|
|
@ -420,6 +420,14 @@ MonoBehaviour:
|
|||
FilterRuleName: CollectPrefab
|
||||
AssetTags:
|
||||
UserData:
|
||||
- CollectPath: Assets/Art/Character/Prefabs/BatteryNew
|
||||
CollectorGUID: b511bb1813f33824387c1c6efac75e47
|
||||
CollectorType: 0
|
||||
AddressRuleName: AddressByFileName
|
||||
PackRuleName: PackDirectory
|
||||
FilterRuleName: CollectAll
|
||||
AssetTags:
|
||||
UserData:
|
||||
- GroupName: Emoji
|
||||
GroupDesc:
|
||||
AssetTags:
|
||||
|
|
|
|||
|
|
@ -93,11 +93,13 @@ namespace Gameplay.Buff
|
|||
{
|
||||
case EGameUnitType.Character:
|
||||
if (sender is Character character)
|
||||
ViewWeapon.ShowHitEffect(beHitter, isCritical, character.weapon.rawConfig, sender.Node.GameObject.transform);
|
||||
ViewWeapon.ShowHitEffect(beHitter, isCritical, character.weapon.rawConfig.CriticalHitEffectId,
|
||||
character.weapon.rawConfig.HitEffectId, sender.Node.GameObject.transform);
|
||||
break;
|
||||
case EGameUnitType.Vehicle:
|
||||
if (sender is NormalVehicle normalVehicle)
|
||||
ViewWeapon.ShowHitEffect(beHitter, isCritical, normalVehicle.battery.rawWeaponConfig, sender.Node.GameObject.transform);
|
||||
ViewWeapon.ShowHitEffect(beHitter, isCritical, normalVehicle.battery.rawConfig.CriticalHitEffectId,
|
||||
normalVehicle.battery.rawConfig.HitEffectId, sender.Node.GameObject.transform);
|
||||
break;
|
||||
default:
|
||||
DebugUtil.LogError("暂未处理的GameUnit类型:{0}", sender.gameunitType);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using Cysharp.Threading.Tasks;
|
||||
using System.Linq;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Gameplay.Character;
|
||||
using Gameplay.Performance;
|
||||
using Gameplay.Unit;
|
||||
|
|
@ -15,6 +16,8 @@ namespace Gameplay.Vehicle
|
|||
public readonly VehicleRuntimeData runtimeData;
|
||||
|
||||
public VehicleAnim vAnim;
|
||||
|
||||
public BaseBattery battery;
|
||||
|
||||
public BaseVehicle(uint id, VehicleConfigData configData,
|
||||
int troopId) : base(id, troopId, EGameUnitType.Vehicle)
|
||||
|
|
@ -46,6 +49,13 @@ namespace Gameplay.Vehicle
|
|||
go.transform.ResetLocals();
|
||||
Node.GameObject.SetLayerEx(Node.GameObject.layer);
|
||||
|
||||
// 找到炮台挂点
|
||||
var allTrans = go.GetComponentsInChildren<Transform>();
|
||||
var pointName = "Battery_point01";
|
||||
var fireTrans = allTrans.First(t => t.name == pointName);
|
||||
battery = new BaseBattery(this, fireTrans);
|
||||
await battery.CreateView();
|
||||
|
||||
// 绑定动画数据
|
||||
vAnim = new VehicleAnim(this);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,12 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using cfg.FightCfg;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Framework;
|
||||
using Gameplay.Unit;
|
||||
using Gameplay.Vehicle.Impl;
|
||||
using LTGame;
|
||||
using PhxhSDK;
|
||||
namespace Gameplay.Vehicle
|
||||
{
|
||||
|
||||
|
|
@ -32,7 +37,7 @@ namespace Gameplay.Vehicle
|
|||
}
|
||||
}
|
||||
|
||||
public readonly cfg.WeaponCfg.DataWeapon rawWeaponConfig;
|
||||
public DataBattery rawConfig;
|
||||
|
||||
public int remainBulletCount;
|
||||
|
||||
|
|
@ -45,12 +50,41 @@ namespace Gameplay.Vehicle
|
|||
/// </summary>
|
||||
public Animator rawAnim;
|
||||
|
||||
public BaseBattery(NormalVehicle owner)
|
||||
public Transform parent;
|
||||
|
||||
public Transform rotateTrans;
|
||||
|
||||
public BaseBattery(BaseVehicle owner, Transform parent)
|
||||
{
|
||||
this.owner = owner;
|
||||
this.parent = parent;
|
||||
this.owner = owner as NormalVehicle;
|
||||
if (this.owner == null)
|
||||
{
|
||||
throw new Exception("炮台必须挂载在NormalVehicle上");
|
||||
}
|
||||
remainShootTime = 0f;
|
||||
remainBulletCount = this.owner.fightData.maxBulletCount;
|
||||
rawWeaponConfig = TableManager.Instance.Tables.WeaponConfig.Get(owner.configData.weaponId);
|
||||
rawConfig = TableManager.Instance.Tables.BatteryConfig.GetOrDefault(owner.configData.weaponId);
|
||||
}
|
||||
|
||||
public async UniTask CreateView()
|
||||
{
|
||||
var batteryPath = rawConfig.ModelPath;
|
||||
GameUnitManager.instance.RecordLoadPath(batteryPath);
|
||||
var sampleObj = await AssetManager.Instance.LoadAssetAsync<GameObject>(batteryPath);
|
||||
if (sampleObj == null)
|
||||
{
|
||||
DebugUtil.LogError("加载炮台失败: {0}", batteryPath);
|
||||
return;
|
||||
}
|
||||
rootObj = Object.Instantiate(sampleObj, parent);
|
||||
rootObj.transform.ResetLocals();
|
||||
var allTrans = rootObj.GetComponentsInChildren<Transform>();
|
||||
|
||||
rawAnim = rootObj.GetComponentInChildren<Animator>();
|
||||
rotateTrans = rootObj.transform;
|
||||
|
||||
_fireTrans = allTrans.First(t => t.name == "Fire");
|
||||
}
|
||||
|
||||
private void _InitFsm()
|
||||
|
|
@ -64,53 +98,26 @@ namespace Gameplay.Vehicle
|
|||
_fsm.ChangeState(EBatteryState.Idle);
|
||||
}
|
||||
|
||||
private void _BindView()
|
||||
{
|
||||
var ownerObj = owner.Node.GameObject;
|
||||
var collector = new ComponentCollector(ownerObj);
|
||||
var skeleton = new Skeleton(collector.Transforms, ownerObj.transform);
|
||||
var parentTrans = skeleton.GetBone("Battery_point01");
|
||||
|
||||
if (parentTrans != null && parentTrans.childCount > 0)
|
||||
{
|
||||
var child = parentTrans.GetChild(0);
|
||||
if (child != null && child.childCount > 0)
|
||||
{
|
||||
rootObj = child.GetChild(0)?.gameObject;
|
||||
}
|
||||
}
|
||||
|
||||
if (rootObj == null)
|
||||
{
|
||||
DebugUtil.LogError("{0}._BindView, cannot get rootObj, owner id = {1}", GetType(), owner?.configData?.configId);
|
||||
}
|
||||
_fireTrans = skeleton.GetBone("Fire");
|
||||
|
||||
rawAnim = parentTrans.GetComponentInChildren<Animator>();
|
||||
|
||||
}
|
||||
|
||||
public void Init()
|
||||
{
|
||||
_BindView();
|
||||
_InitFsm();
|
||||
}
|
||||
|
||||
public bool RotateTower(GameUnit targetEnemy, float dt)
|
||||
{
|
||||
if (rootObj == null)
|
||||
if (rotateTrans == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
var turnSpeed = owner.configData.batteryTurnSpeed;
|
||||
var turnSpeed = rawConfig.TurnSpeed;
|
||||
var turnDt = turnSpeed * dt;
|
||||
var isMatchAngle = false;
|
||||
if (targetEnemy == null || targetEnemy.isDisposed)
|
||||
{
|
||||
// 炮台回正
|
||||
var localYaw = rootObj.transform.localEulerAngles.y;
|
||||
var localYaw = rotateTrans.localEulerAngles.z;
|
||||
var newYaw = Mathf.MoveTowardsAngle(localYaw, 0, turnDt);
|
||||
rootObj.transform.localEulerAngles = new Vector3(0, newYaw, 0);
|
||||
rotateTrans.localEulerAngles = new Vector3(0, 0, newYaw);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -119,18 +126,19 @@ namespace Gameplay.Vehicle
|
|||
var selfPos = rootObj.transform.position;
|
||||
var toTarget = targetPos - selfPos;
|
||||
toTarget.y = 0;
|
||||
var targetYaw = Vector3.SignedAngle(Vector3.forward, toTarget, Vector3.up);
|
||||
var globalYaw = rootObj.transform.eulerAngles.y;
|
||||
var deltaAngle = Mathf.Abs(Mathf.DeltaAngle(globalYaw, targetYaw));
|
||||
var ownerForward = owner.transform.forward;
|
||||
var targetYaw = Vector3.SignedAngle(ownerForward, toTarget, Vector3.up);
|
||||
var nowYaw = rotateTrans.localEulerAngles.z;
|
||||
var deltaAngle = Mathf.Abs(Mathf.DeltaAngle(nowYaw, targetYaw));
|
||||
if (deltaAngle < turnDt)
|
||||
{
|
||||
rootObj.transform.eulerAngles = new Vector3(0, targetYaw, 0);
|
||||
rotateTrans.localEulerAngles = new Vector3(0, 0, targetYaw);
|
||||
isMatchAngle = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
var newYaw = Mathf.MoveTowardsAngle(globalYaw, targetYaw, turnDt);
|
||||
rootObj.transform.eulerAngles = new Vector3(0, newYaw, 0);
|
||||
var newYaw = Mathf.MoveTowardsAngle(nowYaw, targetYaw, turnDt);
|
||||
rotateTrans.localEulerAngles = new Vector3(0, 0, newYaw);
|
||||
}
|
||||
}
|
||||
return isMatchAngle;
|
||||
|
|
|
|||
|
|
@ -26,7 +26,10 @@ namespace Gameplay.Vehicle
|
|||
owner.remainShootTime = owner.owner.fightData.shootCd;
|
||||
_shootTime = owner.owner.fightData.firstShootTime;
|
||||
|
||||
owner.rawAnim.Play("attack", 0, 0);
|
||||
if (owner.rawAnim != null)
|
||||
{
|
||||
owner.rawAnim.Play("attack", 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void _OnRunning()
|
||||
|
|
@ -68,7 +71,7 @@ namespace Gameplay.Vehicle
|
|||
|
||||
private void _PlayFireAudio()
|
||||
{
|
||||
var weaponConfig = owner.rawWeaponConfig;
|
||||
var weaponConfig = owner.rawConfig;
|
||||
var fireAudioIds = weaponConfig.FireAudioId;
|
||||
if (fireAudioIds.Count <= 0) return;
|
||||
var fireAudioId = fireAudioIds[Random.Range(0, fireAudioIds.Count)];
|
||||
|
|
@ -77,7 +80,7 @@ namespace Gameplay.Vehicle
|
|||
|
||||
private void _ShowFireEffects(GameUnit targetEnemy)
|
||||
{
|
||||
var rawWeaponConfig = owner.rawWeaponConfig;
|
||||
var rawWeaponConfig = owner.rawConfig;
|
||||
var rootObj = owner.rootObj;
|
||||
var fireTrans = owner.fireTrans;
|
||||
var fireEffectId = rawWeaponConfig.FireEffectId;
|
||||
|
|
@ -108,7 +111,7 @@ namespace Gameplay.Vehicle
|
|||
Transform end,
|
||||
float flySpeed)
|
||||
{
|
||||
var rawWeaponConfig = owner.rawWeaponConfig;
|
||||
var rawWeaponConfig = owner.rawConfig;
|
||||
// line.effect.transform.LookAt(end, Vector3.up);
|
||||
var endPos = end.position;
|
||||
var startPos = start.position;
|
||||
|
|
|
|||
|
|
@ -28,8 +28,6 @@ namespace Gameplay.Vehicle.Data
|
|||
public int standLevel;
|
||||
public int crossLevel;
|
||||
|
||||
public float batteryTurnSpeed;
|
||||
|
||||
public float shootCd;
|
||||
|
||||
public int maxBulletCount;
|
||||
|
|
@ -96,7 +94,6 @@ namespace Gameplay.Vehicle.Data
|
|||
|
||||
attackDistance = rawConfig.AttackDistance;
|
||||
|
||||
batteryTurnSpeed = rawConfig.BatteryTurnSpeed;
|
||||
shootCd = 1f / rawConfig.FireRate;
|
||||
|
||||
maxBulletCount = rawConfig.BulletCount;
|
||||
|
|
@ -183,7 +180,6 @@ namespace Gameplay.Vehicle.Data
|
|||
|
||||
attackDistance = rawConfig.Cfg.AttackDistance;
|
||||
|
||||
batteryTurnSpeed = rawConfig.Cfg.BatteryTurnSpeed;
|
||||
shootCd = 1f / rawConfig.Cfg.FireRate;
|
||||
|
||||
maxBulletCount = rawConfig.Cfg.BulletCount;
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ namespace Gameplay.Vehicle.Impl
|
|||
|
||||
public NStateMachine<BaseVehicleState> fsm => _fsm;
|
||||
|
||||
public BaseBattery battery;
|
||||
|
||||
public readonly List<GameUnit> containsUnits = new List<GameUnit>();
|
||||
|
||||
|
|
@ -51,7 +50,6 @@ namespace Gameplay.Vehicle.Impl
|
|||
{
|
||||
_InitProps();
|
||||
|
||||
battery = new BaseBattery(this);
|
||||
battery.Init();
|
||||
|
||||
_InitFsm();
|
||||
|
|
|
|||
|
|
@ -156,10 +156,11 @@ namespace Gameplay.Weapon
|
|||
|
||||
public static void ShowHitEffect(GameUnit enemy,
|
||||
bool isCritical,
|
||||
DataWeapon rawConfig,
|
||||
int criticalHitEffectId,
|
||||
int hitEffectId,
|
||||
Transform senderTrans)
|
||||
{
|
||||
var effectId = isCritical ? rawConfig.CriticalHitEffectId : rawConfig.HitEffectId;
|
||||
var effectId = isCritical ? criticalHitEffectId : hitEffectId;
|
||||
if (effectId <= 0)
|
||||
return;
|
||||
var hitPoints = GetPoints(enemy);
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ public sealed partial class DataBattery : Bright.Config.BeanBase
|
|||
{
|
||||
{ if(!_json["ID"].IsNumber) { throw new SerializationException(); } ID = _json["ID"]; }
|
||||
{ if(!_json["NameRead"].IsString) { throw new SerializationException(); } NameRead = _json["NameRead"]; }
|
||||
{ if(!_json["ModelPath"].IsString) { throw new SerializationException(); } ModelPath = _json["ModelPath"]; }
|
||||
{ if(!_json["TurnSpeed"].IsNumber) { throw new SerializationException(); } TurnSpeed = _json["TurnSpeed"]; }
|
||||
{ if(!_json["BulletFlySpeed"].IsNumber) { throw new SerializationException(); } BulletFlySpeed = _json["BulletFlySpeed"]; }
|
||||
{ var __json0 = _json["FireAudioId"]; if(!__json0.IsArray) { throw new SerializationException(); } FireAudioId = new System.Collections.Generic.List<string>(__json0.Count); foreach(JSONNode __e0 in __json0.Children) { string __v0; { if(!__e0.IsString) { throw new SerializationException(); } __v0 = __e0; } FireAudioId.Add(__v0); } }
|
||||
|
|
@ -30,10 +31,11 @@ public sealed partial class DataBattery : Bright.Config.BeanBase
|
|||
PostInit();
|
||||
}
|
||||
|
||||
public DataBattery(int ID, string NameRead, float TurnSpeed, float BulletFlySpeed, System.Collections.Generic.List<string> FireAudioId, int FireEffectId, int HitEffectId, int CriticalHitEffectId, int FlyEffectId )
|
||||
public DataBattery(int ID, string NameRead, string ModelPath, float TurnSpeed, float BulletFlySpeed, System.Collections.Generic.List<string> FireAudioId, int FireEffectId, int HitEffectId, int CriticalHitEffectId, int FlyEffectId )
|
||||
{
|
||||
this.ID = ID;
|
||||
this.NameRead = NameRead;
|
||||
this.ModelPath = ModelPath;
|
||||
this.TurnSpeed = TurnSpeed;
|
||||
this.BulletFlySpeed = BulletFlySpeed;
|
||||
this.FireAudioId = FireAudioId;
|
||||
|
|
@ -58,6 +60,10 @@ public sealed partial class DataBattery : Bright.Config.BeanBase
|
|||
/// </summary>
|
||||
public string NameRead { get; private set; }
|
||||
/// <summary>
|
||||
/// 武器模型路径
|
||||
/// </summary>
|
||||
public string ModelPath { get; private set; }
|
||||
/// <summary>
|
||||
/// 转动角速度
|
||||
/// </summary>
|
||||
public float TurnSpeed { get; private set; }
|
||||
|
|
@ -103,6 +109,7 @@ public sealed partial class DataBattery : Bright.Config.BeanBase
|
|||
return "{ "
|
||||
+ "ID:" + ID + ","
|
||||
+ "NameRead:" + NameRead + ","
|
||||
+ "ModelPath:" + ModelPath + ","
|
||||
+ "TurnSpeed:" + TurnSpeed + ","
|
||||
+ "BulletFlySpeed:" + BulletFlySpeed + ","
|
||||
+ "FireAudioId:" + Bright.Common.StringUtil.CollectionToString(FireAudioId) + ","
|
||||
|
|
|
|||
|
|
@ -39,7 +39,6 @@ public sealed partial class DataEnemyVehicle : Bright.Config.BeanBase
|
|||
{ if(!_json["ReloadTime"].IsNumber) { throw new SerializationException(); } ReloadTime = _json["ReloadTime"]; }
|
||||
{ if(!_json["FireRate"].IsNumber) { throw new SerializationException(); } FireRate = _json["FireRate"]; }
|
||||
{ if(!_json["MoveSpeed"].IsNumber) { throw new SerializationException(); } MoveSpeed = _json["MoveSpeed"]; }
|
||||
{ if(!_json["BatteryTurnSpeed"].IsNumber) { throw new SerializationException(); } BatteryTurnSpeed = _json["BatteryTurnSpeed"]; }
|
||||
{ if(!_json["TurnSpeed"].IsNumber) { throw new SerializationException(); } TurnSpeed = _json["TurnSpeed"]; }
|
||||
{ if(!_json["AttackDistance"].IsNumber) { throw new SerializationException(); } AttackDistance = _json["AttackDistance"]; }
|
||||
{ if(!_json["AttackIgnoreBlock"].IsBoolean) { throw new SerializationException(); } AttackIgnoreBlock = _json["AttackIgnoreBlock"]; }
|
||||
|
|
@ -55,7 +54,7 @@ public sealed partial class DataEnemyVehicle : Bright.Config.BeanBase
|
|||
PostInit();
|
||||
}
|
||||
|
||||
public DataEnemyVehicle(int ID, int VehicleType, string Name, string PrefabPath, int DeadEffectId, int TireMarkId, int StandCrossLevel, int MoveCrossLevel, int SeatCount, int Damage, int Defense, int HP, int BulletCount, float AttackShiledScale, float AttackHpScale, float FirstShootTime, int PerShootCount, int WeaponId, float ReloadTime, int FireRate, float MoveSpeed, float BatteryTurnSpeed, float TurnSpeed, int AttackDistance, bool AttackIgnoreBlock, int MoraleDamage, float ScaleForHuman, float ScaleForVehicle, float CriticalRate, float CriticalScale, int TerrainPlain, int TerrainSnow, int TerrainMountain, int TerrainForest )
|
||||
public DataEnemyVehicle(int ID, int VehicleType, string Name, string PrefabPath, int DeadEffectId, int TireMarkId, int StandCrossLevel, int MoveCrossLevel, int SeatCount, int Damage, int Defense, int HP, int BulletCount, float AttackShiledScale, float AttackHpScale, float FirstShootTime, int PerShootCount, int WeaponId, float ReloadTime, int FireRate, float MoveSpeed, float TurnSpeed, int AttackDistance, bool AttackIgnoreBlock, int MoraleDamage, float ScaleForHuman, float ScaleForVehicle, float CriticalRate, float CriticalScale, int TerrainPlain, int TerrainSnow, int TerrainMountain, int TerrainForest )
|
||||
{
|
||||
this.ID = ID;
|
||||
this.VehicleType = VehicleType;
|
||||
|
|
@ -78,7 +77,6 @@ public sealed partial class DataEnemyVehicle : Bright.Config.BeanBase
|
|||
this.ReloadTime = ReloadTime;
|
||||
this.FireRate = FireRate;
|
||||
this.MoveSpeed = MoveSpeed;
|
||||
this.BatteryTurnSpeed = BatteryTurnSpeed;
|
||||
this.TurnSpeed = TurnSpeed;
|
||||
this.AttackDistance = AttackDistance;
|
||||
this.AttackIgnoreBlock = AttackIgnoreBlock;
|
||||
|
|
@ -184,10 +182,6 @@ public sealed partial class DataEnemyVehicle : Bright.Config.BeanBase
|
|||
/// </summary>
|
||||
public float MoveSpeed { get; private set; }
|
||||
/// <summary>
|
||||
/// 炮台转身速度
|
||||
/// </summary>
|
||||
public float BatteryTurnSpeed { get; private set; }
|
||||
/// <summary>
|
||||
/// 转身速度
|
||||
/// </summary>
|
||||
public float TurnSpeed { get; private set; }
|
||||
|
|
@ -272,7 +266,6 @@ public sealed partial class DataEnemyVehicle : Bright.Config.BeanBase
|
|||
+ "ReloadTime:" + ReloadTime + ","
|
||||
+ "FireRate:" + FireRate + ","
|
||||
+ "MoveSpeed:" + MoveSpeed + ","
|
||||
+ "BatteryTurnSpeed:" + BatteryTurnSpeed + ","
|
||||
+ "TurnSpeed:" + TurnSpeed + ","
|
||||
+ "AttackDistance:" + AttackDistance + ","
|
||||
+ "AttackIgnoreBlock:" + AttackIgnoreBlock + ","
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@ public sealed partial class DataVehicle : Bright.Config.BeanBase
|
|||
{ if(!_json["ReloadTime"].IsNumber) { throw new SerializationException(); } ReloadTime = _json["ReloadTime"]; }
|
||||
{ if(!_json["FireRate"].IsNumber) { throw new SerializationException(); } FireRate = _json["FireRate"]; }
|
||||
{ if(!_json["MoveSpeed"].IsNumber) { throw new SerializationException(); } MoveSpeed = _json["MoveSpeed"]; }
|
||||
{ if(!_json["BatteryTurnSpeed"].IsNumber) { throw new SerializationException(); } BatteryTurnSpeed = _json["BatteryTurnSpeed"]; }
|
||||
{ if(!_json["TurnSpeed"].IsNumber) { throw new SerializationException(); } TurnSpeed = _json["TurnSpeed"]; }
|
||||
{ if(!_json["AttackDistance"].IsNumber) { throw new SerializationException(); } AttackDistance = _json["AttackDistance"]; }
|
||||
{ if(!_json["AttackIgnoreBlock"].IsBoolean) { throw new SerializationException(); } AttackIgnoreBlock = _json["AttackIgnoreBlock"]; }
|
||||
|
|
@ -57,7 +56,7 @@ public sealed partial class DataVehicle : Bright.Config.BeanBase
|
|||
PostInit();
|
||||
}
|
||||
|
||||
public DataVehicle(int ID, int VehicleType, string Name, string UIHeadPath, string PrefabPath, int DeadEffectId, int TireMarkId, int StandCrossLevel, int MoveCrossLevel, int SeatCount, int Damage, int Defense, int HP, int BulletCount, float AttackShiledScale, float AttackHpScale, float FirstShootTime, int PerShootCount, int WeaponId, float ReloadTime, int FireRate, float MoveSpeed, float BatteryTurnSpeed, float TurnSpeed, int AttackDistance, bool AttackIgnoreBlock, int MoraleDamage, float ScaleForHuman, float ScaleForVehicle, float CriticalRate, float CriticalScale, int TerrainPlain, int TerrainSnow, int TerrainMountain, int TerrainForest, string Icon )
|
||||
public DataVehicle(int ID, int VehicleType, string Name, string UIHeadPath, string PrefabPath, int DeadEffectId, int TireMarkId, int StandCrossLevel, int MoveCrossLevel, int SeatCount, int Damage, int Defense, int HP, int BulletCount, float AttackShiledScale, float AttackHpScale, float FirstShootTime, int PerShootCount, int WeaponId, float ReloadTime, int FireRate, float MoveSpeed, float TurnSpeed, int AttackDistance, bool AttackIgnoreBlock, int MoraleDamage, float ScaleForHuman, float ScaleForVehicle, float CriticalRate, float CriticalScale, int TerrainPlain, int TerrainSnow, int TerrainMountain, int TerrainForest, string Icon )
|
||||
{
|
||||
this.ID = ID;
|
||||
this.VehicleType = VehicleType;
|
||||
|
|
@ -81,7 +80,6 @@ public sealed partial class DataVehicle : Bright.Config.BeanBase
|
|||
this.ReloadTime = ReloadTime;
|
||||
this.FireRate = FireRate;
|
||||
this.MoveSpeed = MoveSpeed;
|
||||
this.BatteryTurnSpeed = BatteryTurnSpeed;
|
||||
this.TurnSpeed = TurnSpeed;
|
||||
this.AttackDistance = AttackDistance;
|
||||
this.AttackIgnoreBlock = AttackIgnoreBlock;
|
||||
|
|
@ -192,10 +190,6 @@ public sealed partial class DataVehicle : Bright.Config.BeanBase
|
|||
/// </summary>
|
||||
public float MoveSpeed { get; private set; }
|
||||
/// <summary>
|
||||
/// 炮台转身速度
|
||||
/// </summary>
|
||||
public float BatteryTurnSpeed { get; private set; }
|
||||
/// <summary>
|
||||
/// 转身速度
|
||||
/// </summary>
|
||||
public float TurnSpeed { get; private set; }
|
||||
|
|
@ -285,7 +279,6 @@ public sealed partial class DataVehicle : Bright.Config.BeanBase
|
|||
+ "ReloadTime:" + ReloadTime + ","
|
||||
+ "FireRate:" + FireRate + ","
|
||||
+ "MoveSpeed:" + MoveSpeed + ","
|
||||
+ "BatteryTurnSpeed:" + BatteryTurnSpeed + ","
|
||||
+ "TurnSpeed:" + TurnSpeed + ","
|
||||
+ "AttackDistance:" + AttackDistance + ","
|
||||
+ "AttackIgnoreBlock:" + AttackIgnoreBlock + ","
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
{
|
||||
"ID": 1,
|
||||
"NameRead": "炮台1",
|
||||
"ModelPath": "Assets/Art/Character/Prefabs/BatteryNew/P_R00001_01.prefab",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
|
|
@ -15,6 +16,7 @@
|
|||
{
|
||||
"ID": 2,
|
||||
"NameRead": "炮台2",
|
||||
"ModelPath": "Assets/Art/Character/Prefabs/BatteryNew/P_R00002_01.prefab",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
|
|
@ -28,6 +30,7 @@
|
|||
{
|
||||
"ID": 3,
|
||||
"NameRead": "炮台3",
|
||||
"ModelPath": "Assets/Art/Character/Prefabs/BatteryNew/P_R00003_01.prefab",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
|
|
@ -41,6 +44,7 @@
|
|||
{
|
||||
"ID": 4,
|
||||
"NameRead": "炮台4",
|
||||
"ModelPath": "Assets/Art/Character/Prefabs/BatteryNew/P_R00004_01.prefab",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
|
|
@ -54,6 +58,7 @@
|
|||
{
|
||||
"ID": 5,
|
||||
"NameRead": "炮台5",
|
||||
"ModelPath": "Assets/Art/Character/Prefabs/BatteryNew/P_R00005_01.prefab",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
|
|
@ -67,6 +72,7 @@
|
|||
{
|
||||
"ID": 6,
|
||||
"NameRead": "炮台6",
|
||||
"ModelPath": "Assets/Art/Character/Prefabs/BatteryNew/P_R00006_01.prefab",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
|
|
@ -80,6 +86,7 @@
|
|||
{
|
||||
"ID": 7,
|
||||
"NameRead": "炮台7",
|
||||
"ModelPath": "Assets/Art/Character/Prefabs/BatteryNew/P_R00007_01.prefab",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
|
|
@ -93,6 +100,7 @@
|
|||
{
|
||||
"ID": 8,
|
||||
"NameRead": "炮台8",
|
||||
"ModelPath": "Assets/Art/Character/Prefabs/BatteryNew/P_R00008_01.prefab",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
|
|
@ -106,6 +114,7 @@
|
|||
{
|
||||
"ID": 9,
|
||||
"NameRead": "炮台9",
|
||||
"ModelPath": "Assets/Art/Character/Prefabs/BatteryNew/P_R00009_01.prefab",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
|
|
@ -115,304 +124,5 @@
|
|||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 10,
|
||||
"NameRead": "炮台10",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_5"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 11,
|
||||
"NameRead": "炮台11",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_4"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 12,
|
||||
"NameRead": "炮台12",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_5"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 13,
|
||||
"NameRead": "炮台13",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_4"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 14,
|
||||
"NameRead": "炮台14",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_5"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 15,
|
||||
"NameRead": "炮台15",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_4"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 16,
|
||||
"NameRead": "炮台16",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_5"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 17,
|
||||
"NameRead": "炮台17",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_4"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 18,
|
||||
"NameRead": "炮台18",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_5"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 19,
|
||||
"NameRead": "炮台19",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_4"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 20,
|
||||
"NameRead": "炮台20",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_5"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 21,
|
||||
"NameRead": "炮台21",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_4"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 22,
|
||||
"NameRead": "炮台22",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_5"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 23,
|
||||
"NameRead": "炮台23",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_4"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 24,
|
||||
"NameRead": "炮台24",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_5"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 25,
|
||||
"NameRead": "炮台25",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_4"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 26,
|
||||
"NameRead": "炮台26",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_5"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 27,
|
||||
"NameRead": "炮台27",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_4"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 28,
|
||||
"NameRead": "炮台28",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_5"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 29,
|
||||
"NameRead": "炮台29",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_4"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 30,
|
||||
"NameRead": "炮台30",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_5"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 31,
|
||||
"NameRead": "炮台31",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_4"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
},
|
||||
{
|
||||
"ID": 32,
|
||||
"NameRead": "炮台32",
|
||||
"TurnSpeed": 400,
|
||||
"BulletFlySpeed": 120,
|
||||
"FireAudioId": [
|
||||
"Sound_Shoot_5"
|
||||
],
|
||||
"FireEffectId": 4,
|
||||
"HitEffectId": 10,
|
||||
"CriticalHitEffectId": 7,
|
||||
"FlyEffectId": 15
|
||||
}
|
||||
]
|
||||
|
|
@ -21,7 +21,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 2,
|
||||
"BatteryTurnSpeed": 90,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 4,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -57,7 +56,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 2,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 4,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -93,7 +91,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 1.2,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 6,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -129,7 +126,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 2,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 4,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -165,7 +161,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 1.2,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 6,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -201,7 +196,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 2,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 4,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -237,7 +231,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 2,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 4,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -273,7 +266,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 3,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 3,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -309,7 +301,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 3,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 3,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -345,7 +336,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 3,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 3,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -381,7 +371,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 3,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 3,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -417,7 +406,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 3,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 3,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 2,
|
||||
"BatteryTurnSpeed": 90,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 4,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -60,7 +59,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 1.2,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 6,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -98,7 +96,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 2,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 4,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -136,7 +133,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 2,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 4,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -174,7 +170,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 3,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 3,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -212,7 +207,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 3,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 3,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -250,7 +244,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 3,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 3,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -288,7 +281,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 3,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 3,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
@ -326,7 +318,6 @@
|
|||
"ReloadTime": 4,
|
||||
"FireRate": 1,
|
||||
"MoveSpeed": 3,
|
||||
"BatteryTurnSpeed": 400,
|
||||
"TurnSpeed": 400,
|
||||
"AttackDistance": 3,
|
||||
"AttackIgnoreBlock": false,
|
||||
|
|
|
|||
Loading…
Reference in New Issue