/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 13 мая 2025 15:25:18
* Version: 1.0.1
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
namespace FLGenerateLibrary
{
public class MunitionStats : Equipment
{
///
/// Уникальный идентификатор частицы
///
[Header("Уникальный идентификатор частицы")]
public string Nickname;
///
/// Эффект взрыва
///
[Header("Эффект взрыва")]
public ExplosionStats ExplosionArch;
///
/// Тип контейнера
///
[Header("Тип контейнера")]
public LootCrateStats LootAppearance;
///
/// Cколько единиц содержится в контейнере
///
[Header("Cколько единиц содержится в контейнере")]
public int UnitPerContainer;
///
/// Тип оборудования
///
[Header("Тип оборудования")]
public MunitionHpType HpType;
///
/// Требуемость боеприпасов(значения true/false)
///
[Header("Требуемость боеприпасов(значения true/false)")]
public bool RequiresAmmo;
///
/// Количество здоровья
///
[Header("Количество здоровья")]
public int HitPts;
///
/// Звук выстрела
///
[Header("Звук выстрела")]
public SoundStats OneShotSound;
///
/// Звук выстрела
///
[Header("Звук выстрела")]
public SoundGfStats GfOneShotSound;
///
/// Может работать только с ракетами.
/// Устанавливает радиус, в пределах которого снаряд
/// взорвется вместо того, чтобы должным образом столкнуться с целью.
///
[Header("Время дистанционной детонации")]
public float DetonationDist;
///
/// Время жизни частицы(процент от muzzle_velocity) для конфигурирования дальности
///
[Header("Время жизни частицы(процент от muzzle_velocity) для конфигурирования дальности")]
public float Lifetime;
///
/// Относится к двигателю , который будет использоваться, если необходимо.
///
[Header("Двигатель ракеты или торпеды")]
public MotorStats Motor;
///
/// Если установлено значение true, оружие не сможет стрелять из ствола под углом.
/// Это означает, что если оружие не может точно направиться в направлении своей цели
/// (обычно из-за слишком маленькой дальности стрельбы, установленной точкой
/// крепления на корабле/солнце), оно будет стрелять в неправильном направлении.
/// Если установлено значение false, он сможет стрелять внутри конуса,
/// как определено MUZZLE_CONE_ANGLE в файле Constants.ini.
///
[Header("Стрельба под углом")]
public bool ForceGunOri;
///
/// Относится к эффекту , который будет использоваться для снарядов.
///
[Header("Относится к эффекту , который будет использоваться для снарядов.")]
public EffectMain ConstEffect;
///
/// Если оружие представляет собой ракету, определяет точку крепления ,
/// из которой будет излучаться эффект , определенный const_effect .
///
[Header("Точка крепления const_effect к ракете")]
public string HPTrailParent;
///
/// Используйте, чтобы превратить оружие в ракету. Может быть либо LOCK , либо DUMB , причем первый создает следящую ракету, а второй создает совершенно тупую. Помните, что даже ванильные «неуправляемые» ракеты, такие как Cannonball, используют LOCK . Необходимо использовать в сочетании с:
///time_to_lock (только если искатель LOCK )
///seeker_range (только если искатель LOCK )
///seeker_fov_deg ( только если искатель LOCK )
///max_angular_velocity ( только если искатель LOCK )
///DA_archetype материал_библиотека
///
[Header("Тип ракеты")]
public SeekerType Seeker;
///
/// Устанавливает время в секундах, до которого ракета захватит выбранную цель.
///
[Header("Тип ракеты")]
public float TimeToLock;
///
/// Максимальная дальность поиска, независимо от фактической эффективной дальности.
/// Если цель находится за пределами этого диапазона, ракета не будет сопровождать ее.
///
[Header("Максимальная дальность поиска, независимо от фактической эффективной дальности. ")]
public int SeekerRange;
///
/// Устанавливает поле зрения в градусах, в пределах которого будет отслеживаться ракета.
/// Это значение отклоняется от оси в градусах.
/// Например, значение 15 означает, что искатель будет сопровождать цель,
/// расположенную под углом 15 градусов влево или вправо от его носа.
///
[Header("Поле зрения в градусах")]
public int SeekerFovDeg;
///
/// Определяет максимальную угловую скорость в рад/с (?)
///
[Header("Максимальная угловая скорость")]
public float MaxAngularVelocity;
///
/// Адрес до модельки 3db в оригинале
///
[Header("Адрес до модельки 3db в оригинале")]
public string DAArchetype;
///
/// Материал
///
[Header("Материал")]
public string MaterialLibrary;
///
/// Единица "веса" частицы(для расчета инерции), энергетическому оружию всегда 1
///
[Header("Единица веса частицы(для расчета инерции), энергетическому оружию всегда 1")]
public float Mass;
///
/// Вес в грузовом отсеке
///
[Header("Вес в грузовом отсеке")]
public float Volume;
///
/// Число ракет в боезапасе
///
[Header("Число ракет в боезапасе")]
public int AmmoLimit;
///
/// Если установлено значение true, оружие нарушит круиз,
/// если нанесет урон. Обычно отсутствует, если не установлено значение true.
///
[Header("Может ли нарушить круиз")]
public bool CruiseDisruptor;
///
/// Урон по корпусу
///
[Header("Урон по корпусу")]
public float HullDamage;
///
/// ((hull_damade / 2) + energy_damage) = урон по щиту
///
[Header("((hull_damade / 2) + energy_damage) = урон по щиту")]
public float EnergyDamage;
///
/// Тип оружия для расчета блокировки разными типами щитов
///
[Header("Тип оружия для расчета блокировки разными типами щитов")]
public WeaponTypeStats WeaponType;
///
/// Импект - эффект попадания (Не следует использовать, если используется Explosion_arch)
///
[Header("Импект - эффект попадания")]
public EffectMain MunitionHitEffect;
///
/// Безопасное время владельца
///
[Header("Безопасное время владельца")]
public int OwnerSafeTime;
///
/// Способность выпадать из трюма при смерти игрока (значения true/false)
///
[Header("Способность выпадать из трюма при смерти игрока (значения true/false)")]
public bool Lootable;
}
}