using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
namespace FLGenerateLibrary
{
public class EngineStats : Equipment
{
///
/// Иконка в магазине
///
[Header("Иконка в магазине")]
public GameObject ItemIcon;
///
/// Скорость поворота
///
[Header("Скорость поворота")]
public float TurnMove = 20f;
///
/// Скорость возврата в нормальное состояние
///
[Header("Скорость возврата в нормальное состояние")]
public float TurnNormalMove = 40f;
///
/// Максимальная скорость корабля
///
[Header("Максимальная скорость корабля")]
public float SpeedMax = 75f;
///
/// Актуальная сокрость
///
[Header("Актуальная сокрость")]
public float SpeedNow = .0f;
///
/// Регулятор чувствительности отклонения мыши
///
[Header("Регулятор чувствительности отклонения мыши")]
[Range(0, 100f)]
public float MouseSensitivityKef = 20.0f;
///
/// Угол крена судна
///
[Header("Угол крена судна")]
[Range(0, 360)]
public int AngleRoll = 15;
///
/// Коэфициент набора скорости обычного двигателя
///
[Header("Коэфициент набора скорости обычного двигателя")]
public float SpeedKefNow = 2f;
///
/// Уникальный идентификатор
///
[Header("Уникальный идентификатор")]
public string Nickname;
///
/// Громкость звука
///
[Header("Громкость звука")]
public float Volume;
///
/// Масса двигателя
///
[Header("Масса двигателя")]
public float Mass;
///
/// Тяга двигателя (делим на 600 aи получаем скорость в м/с: 48000/600 = 80 м/с)
///
[Header("Тяга двигателя")]
public int MaxForce;
///
/// Сила замедления
///
[Header("Сила замедления")]
public float LinearDrag;
///
/// Количество мощности, которую двигатель использует от силовой установки
///
[Header("Количество мощности, которую двигатель использует от силовой установки")]
public float PowerUsage;
///
/// Определяет, насколько быстро вы можете двигаться назад (0-1)
///
[Header("Определяет, насколько быстро вы можете двигаться назад")]
public float ReverseFraction;
///
/// Устанавливает, сколько секунд потребуется для зарядки в режиме круиза.
///
[Header("Устанавливает, сколько секунд потребуется для зарядки в режиме круиза")]
public float CruiseChargeTime;
///
/// Когда вы находитесь в круизном режиме, это количество энергии, которое будет расходоваться в секунду.
/// Если ваша электростанция не может обеспечить такое количество энергии,
/// вы соответствующим образом замедлитесь, как только буфер опустеет.
///
[Header("Когда вы находитесь в круизном режиме, это количество энергии, которое будет расходоваться в секунду.")]
public float CruisePowerUsage;
///
/// Отсылает к звуковому эффекту, который издает ваш двигатель во время обычного полета.
///
[Header("Отсылает к звуковому эффекту, который издает ваш двигатель во время обычного полета.")]
public SoundBase CharacterLoopSound;
///
/// В Freelancer звуки повышаются/понижаются, поэтому они не всегда звучат одинаково. Эти два значения, вероятно, являются нижней и верхней границей этого искажения.
///
[Header("Нижняя и верхняя граница искажения звука обычного двигателя")]
public Vector2 CharacterPitchRange;
///
/// Ссылается на звуковой эффект. Устанавливает звук, который постоянно издает двигатель.
///
[Header("Устанавливает звук, который постоянно издает двигатель.")]
public SoundBase RumbleSound;
///
/// В Freelancer звуки усиливаются/приглушаются, поэтому их громкость не всегда одинакова. Эти два значения, вероятно, являются нижней и верхней границей этого показателя.
///
[Header("Нижняя и верхняя граница усиливания/приглушения звука двигателя")]
public Vector2 RumbleAttenRange;
///
/// В Freelancer звуки повышаются/понижаются, поэтому они не всегда звучат одинаково. Эти два значения, вероятно, являются нижней и верхней границей этого искажения.
///
[Header("Нижняя и верхняя граница искажения звука обычного двигателя")]
public Vector2 RumblePitchRange;
///
/// Можно ли уничтожить (false - да, true - нет)
///
[Header("Можно ли уничтожить")]
public bool Indestructible;
///
/// В Freelancer звуки усиливаются/приглушаются, поэтому они не всегда имеют одинаковую громкость. Внутри external_sound_cone звук имеет другую громкость, чем в Inside_sound_cone. Если вы не находитесь ни в одном из них, вы ничего не услышите.
///
[Header("Внешнее конусное затухание")]
public int OutsideСoneAttenuation;
///
/// В Freelancer звуки усиливаются/приглушаются, поэтому они не всегда имеют одинаковую громкость. Внутри external_sound_cone звук имеет другую громкость, чем в Inside_sound_cone. Если вы не находитесь ни в одном из них, вы ничего не услышите.
///
[Header("Внутреннее конусное затухание")]
public int InsideSoundCone;
///
/// В Freelancer звуки усиливаются/приглушаются, поэтому они не всегда имеют одинаковую громкость. Внутри external_sound_cone звук имеет другую громкость, чем в Inside_sound_cone. Если вы не находитесь ни в одном из них, вы ничего не услышите.
///
[Header("Внешний звуковой конус")]
public int OutsideSoundCone;
///
/// Максимальная мощность двигателя
///
[Header("Максимальная мощность двигателя")]
public float СruiseSpeed = 500.0f;
///
/// Эффект двигателя (это модифицированные эффекты пламени)
///
[Header("Эффект двигателя (модифицированные эффекты пламени)")]
public EffectMain FlameEffect;
///
/// Модифицированный круизный эффект
///
[Header("Модифицированный круизный эффект")]
public EffectMain TrailEffect;
///
/// Круизный эффект и эффект тропы двигателя
///
[Header("Круизный эффект и эффект тропы двигателя")]
public EffectMain TrailEffectPlayer;
///
/// Вы слышите этот звук, когда возобновляете работу после остановки двигателя.
///
[Header("Вы слышите этот звук, когда возобновляете работу после остановки двигателя")]
public SoundBase CharacterStartSound;
///
/// Отсылает к звуковому эффекту, который воспроизводится при нажатии кнопки выключения двигателя.
///
[Header("Отсылает к звуковому эффекту, который воспроизводится при нажатии кнопки выключения двигателя.")]
public SoundBase EngineKillSound;
///
/// Отсылает к звуковому эффекту, который воспроизводится при переходе в круизный режим.
///
[Header("Отсылает к звуковому эффекту, который воспроизводится при переходе в круизный режим.")]
public SoundBase CruiseStartSound;
///
/// Отсылает к звуковому эффекту, который воспроизводится, когда вы находитесь в круизном режиме.
///
[Header("Отсылает к звуковому эффекту, который воспроизводится, когда вы находитесь в круизном режиме.")]
public SoundBase CruiseLoopSound;
///
/// Отсылает к звуковому эффекту, который воспроизводится при выходе из круизного режима.
///
[Header("Отсылает к звуковому эффекту, который воспроизводится при выходе из круизного режима.")]
public SoundBase CruiseStopSound;
///
/// Отсылает к звуковому эффекту, который воспроизводится при нарушении режима круиза.
///
[Header("Отсылает к звуковому эффекту, который воспроизводится при нарушении режима круиза.")]
public SoundBase CruiseDisruptSound;
///
/// Отсылает к звуковому эффекту, который воспроизводится при нарушении режима круиза боем.
///
[Header("Отсылает к звуковому эффекту, который воспроизводится при нарушении режима круиза боем.")]
public SoundBase CruiseBackfireSound;
///
/// Эффект срыва круиза
///
[Header("Эффект срыва круиза")]
public EffectMain CruiseDisruptEffect;
///
/// Используемое здесь имя группы может быть свободно
/// выбрано и должно совпадать с именем кораблей,
/// на которых может быть установлена эта пушка
/// Строка группы установок не является обязательной,
/// все корабли и орудия, не указанные в группе,
/// будут просто рассматриваться как одна большая группа,
/// на которую нельзя устанавливать ничего из других групп,
/// и наоборот.
///
[Header("Имя группы")]
public HpMountGroup HpMountGroup = HpMountGroup.NONE;
///
/// Адрес до модельки 3db в оригинале
///
[Header("Адрес до модельки 3db в оригинале")]
public string DAArchetype;
///
/// Адрес до материала .mat в оригинале
///
[Header("Адрес до материала .mat в оригинале")]
public string MaterialLibrary;
///
/// Дистанции LOD
///
[Header("Дистанции LOD")]
public List LODRanges;
///
/// Эффект взрыва - вспышка с осколками
///
[Header("Эффект взрыва - вспышка с осколками")]
public ExplosionStats ExplosionArch;
///
/// Можно ли притянуть захватом
///
[Header("Можно ли притянуть захватом")]
public bool Lootable = true;
///
/// Скорость для GUI в формате числа Int
///
public string SpeedGUI => ((int)Math.Ceiling(Math.Round(SpeedNow, 1))).ToString();
}
}