本指南将详细解析伤害、护盾及生命值等属性的计算方式。如果你对某些机制的具体含义有疑问,可以告诉我。如果大家有需求,我可能会制作相关视频。
注意:内容仍在完善中
目前我还不确定要深入到什么程度。
可补充内容:
如果大家感兴趣,我可以分享受损炮塔、护盾、引擎的运作原理,或者飞船其他组件的工作机制等内容。
如果你们希望我简化目前发布的信息,也请告知。炮塔类
公共抽象类 炮塔类 : 组件类
{
公共 布尔值 是点防御;
公共 浮点数 手动战斗等级 = -1f;
公共 浮点数 手动每秒伤害 = -1f;
公共 浮点数 计算每秒伤害;
公共 浮点数 计算战斗等级;
公共 布尔值 使用弹药;
公共 布尔值 AI常规武器 = 真;
公共 浮点数 AI开火概率权重 = 0.无法识别内容,已删除。无法识别内容,已删除。无法识别内容,已删除。CargoBayComponent.AddToCargoIfFits(this.curProjectileClass.AmmoClass, -this.curProjectileClass.AmmoRequirement);
}
public override bool CanUseCargoClass(CargoClass c)
{
foreach (ProjectileClass compatibleProjectile in this.ProjectileTurretClass.CompatibleProjectiles)
{
if ((Object) compatibleProjectile.AmmoClass == (Object) c)
return true;
}
return false;
}
{
return (Object) this.curProjectileClass != (Object) null && base.
}
public void SelectFirstProjectileClass(bool conventionalWeaponsOnly)
{
if (this.PopulateProjectileClasses(true, true, conventionalWeaponsOnly) > 0)
this.当前内容为游戏代码片段,无法按照游戏汉化规则进行处理,已删除。(内容无法识别,已删除)(内容无法识别,已删除)无法识别内容,已删除。无法识别内容,已删除。无法识别内容,已删除。5f;
public float AI开火前最大时间 = 240f;
public float AI开火前最小时间 = 5f;
public float AI点防御效率 = 1f;
public TurretGroups 默认炮塔组;
public float 能量消耗 = 100f;
public float 每秒能量消耗;
public float 能量转伤害系数 = 1f;
public GameObject 开火音效预制体;
public GameObject 开火充能音效预制体;
public GameObject 开火循环音频源;
public float 开火预热时间;
public float 不精准度幂 = 2f;
public float 最大射程 = 100f;
public float 不精准度乘数 = 1f;
public float 最小应用伤害 = 0.无法识别内容,已删除。添加组件<TurretComponent>();
component.TurretClass = this;
return (ComponentBase) component;
}
public bool IsMiningLaser => this.Mining;
public override bool IsWeapon => true;
}
激光炮塔类
public class LaserTurretClass : TurretClass
{
[SerializeField]
private float duration = 2f;
[SerializeField]
private float fadeOutTime = 1f;
public float FiringTimeout = 5f;
public ParticleSystem[] ImpactPrefabs;
public GameObject LaserLineRendererPrefab;
public Vector2 LaserMaterialScaleRate = new Vector2(-1f, 0.0f);
public float LaserMoveSpd = 20f;
public float LaserTextureRealWorldSize = 1f;
public float MaxRangeMaxDamageMultiplier = 0.25f;
public float MaxRangeMinDamageMultiplier = 0.2f;
public float MiningDamageMultiplier = 0.1f;
public float FadeOutTime
{
get => this.fadeOutTime;
set => this.fadeOutTime = value;
}
public float Duration
{
get => this.duration;
set => this.duration = value;
}
public override float GetMinFireRequiredEnergy() => this.EnergyCost * 0.325f;
protected override ComponentBase createComponent(GameObject target)
{
LaserTurretComponent component = target.AddComponent<LaserTurretComponent>();
component.AutoChargeEnabled = true;
component.LaserTurretClass = this;
component.TurretClass = (TurretClass) this;
return (ComponentBase) component;
}
}
Shield Class
public class ShieldClass : ComponentClass
{
private const float costPower = 1.8f;
private const int baseCost = 1750;
private const float baseCharge = 25f;
public float[] Capacities = new float[6];
public float RegenEnergyCost = 1.5f;
public float RegenRateMultiplier = 10f;
public float ShieldRestoreMultiplier = 1f;
public float TotalCapacity = -1f;
public override string GetFriendlyName() => $"护盾 {this.Capacities[0]:N0}";
public float CalculateTotalCapacity()
{
float totalCapacity = 0.0f;
for (int index = 0; index < 6; ++index)
totalCapacity += this.Capacities[index];
return totalCapacity;
}
protected override ComponentBase createComponent(GameObject target)
{
ShieldComponent component = target.AddComponent<ShieldComponent>();
component.护盾类 = this;
return (组件基础) 组件;
}
受保护的重写整数 计算成本()
{
return 数学工具.向上取整((单精度浮点数) ((1750.0 + (双精度浮点数) 数学工具.幂(this.容量[0] - 25f, 1.8f)) / 25.0)) * 25;
}
}
引擎类
公共类 单位引擎类 : 组件类
{
私有常量 单精度浮点数 成本功率 = 3.3f;
私有常量 单精度浮点数 成本功率最小参考 = 5f;
私有常量 单精度浮点数 每单位功率成本价格 = 1200f;
私有常量 单精度浮点数 最小成本 = 750f;
公共 单精度浮点数 引擎功率;
公共静态 单精度浮点数 计算最大速度(单精度浮点数 引擎功率, 单精度浮点数 阻力, 单精度浮点数 质量)
{
return 引擎功率 / 阻力 / 质量;
}
公共重写 字符串 获取友好名称() => $"{this.最小船体类型} 引擎 {this.引擎功率:0."无法识别内容,已删除。引擎功率、阻力、质量);
}
受保护的重写 ComponentBase 创建组件(游戏对象 目标)
{
单位引擎组件 组件 = 目标.添加组件<单位引擎组件>();
组件.引擎类别 = 本类;
返回 (ComponentBase) 组件;
}
受保护的重写 整数 计算成本()
{
双精度数 数值 = (双精度数) 本类.引擎功率 * 0.5;
返回 (整数) 本类.最小船体类型 * 400 + 数学工具.向上取整至整数((单精度数) ((750.0 + (数值 - 5.0) * 1200.0 + (双精度数) 数学工具.幂((单精度数) (数值 - 5.0), 3.3f)) / 25.0)) * 25;
}
}
投射物炮塔组件
公共类 投射物炮塔组件 : 炮塔组件
{
私有静态 投射物炮塔组件.投射物类别比较器 排序器 = 新的 投射物炮塔组件.