FLResourceLibrary/FLGenerateLibrary/FreelancerCoreClasses/Equipments/EngineStats.cs

301 lines
16 KiB
C#
Raw Permalink Normal View History

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