FLResourceLibrary/FLGenerateLibrary/FreelancerCoreClasses/Equipments/EngineStats.cs
Dvurechensky 6e2bfe062d 1.0.1
2025-05-13 15:25:37 +03:00

301 lines
16 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 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 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();
}
}