using System.Collections.Generic; using log4net.Config; using ShipHandling; using UnityEngine; /// /// Contains everything what makes a ship a ship, from the ship actor/3D-Model prefab to all the /// properties which are unique to it's controls and behavior. /// [CreateAssetMenu(fileName = "BaseShip", menuName = "ScriptableObjects/BaseShip")] public class BaseShipProperties : ScriptableObject { [Header("Basic Movement")] [Tooltip("The acceleration applied on thrust input.")] public float ThrustAcceleration = 2000; [Tooltip("The velocity with which the character can rotate around it's center.")] public float SteerVelocity = 360; [Header("Max Velocity & Drag")] [Tooltip("The standard limit of character velocity.")] public float NormalMaxVelocity = 15f; [Tooltip("The absolute maximum of character velocity (enforced by drag).")] public float AbsolutMaxVelocity = 25f; [Tooltip("The drag which acts opposite to the characters movement direction normally.")] public float NormalDrag = 5f; [Tooltip("The maximum drag which can act opposite to the characters movement direction.")] public float MaximumDrag = 10f; [Tooltip("The drag which acts opposite to the characters rotation direction normally.")] public float TorqueDrag = 0.2f; [Header("Gravity Strength")] public float GravityStrength = 30f; [Header("Anti-Drift")] [Tooltip("The amount to which the drift of the character is reduced when anti-drift is active.")] public float AntiDriftAmount = 12; [Tooltip("The amount to which the drift of the character is always reduced.")] public float MinAntiDriftFactor = 0.03f; [Header("Boost")] [Tooltip("The time which is used up when a player uses boost.")] public float MaxBoostCapacity = 3.3f; [Tooltip("The point at which a player can boost again when boost is reloading.")] public float MinBoostCapacity = 0.15f; [Tooltip("The factor with which the thrust is multiplied while boosting.")] public float BoostMagnitude = 1.5f; [Tooltip("The flat tax on the boost when outside of a recharging zone (capacity -= rate * time in seconds).")] public float OutsideBoostRate = 0.0f; [Tooltip("The factor of gravity which is eliminated by boosting (1 = no gravity).")] public float BoostAntiGravityFactor = 0.33f; [Header("Stun & Tackle")] [Tooltip("The factor by which the player looses control over the character when being stunned (0 = no control).")] public float StunLooseControlFactor = 0.1f; [Tooltip("Time until the tackling player can be tackled again")] public float TacklingGraceTime = 0.6f; [Tooltip("Time until the tackled player can be tackled again")] public float TackledGraceTime = 0.6f; [Tooltip("The time it takes for a critically stunned character to be controlable again.")] public float TackledCriticalStunTime = 0.6f; [Tooltip("The time it takes for a normally stunned character to be controlable again.")] public float TackledBodyStunTime = 0.3f; [Tooltip("The power with which the character is tackled away, when hit critically.")] public float CriticalTacklePowerFactor = 60f; [Tooltip("The power with which the character is tackled away, when hit normally.")] public float NormalTacklePowerFactor = 40f; [Header("Ship sounds")] public ShipAudio Audio; }