using System; using UnityEngine; namespace BlueWater.Enemies.Bosses.TitanSlime { [Serializable] public class TitanSlimeState { [field: SerializeField] public int Level { get; private set; } [field: SerializeField] public float Size { get; private set; } [field: SerializeField] public int MaxHp { get; private set; } [field: SerializeField] public float AnimationLength { get; private set; } [field: SerializeField] public float ViewRange { get; private set; } [field: SerializeField] public Vector2 RandomCooldown { get; private set; } [field: SerializeField] public bool HasRabbit { get; private set; } [field: SerializeField] public float JumpCameraShakingPower { get; private set; } [field: SerializeField] public float JumpCameraShakingDuration { get; private set; } public TitanSlimeState(int level, float size, int maxHp, float animationLength, float viewRange, Vector2 randomCooldown, bool hasRabbit, float jumpCameraShakingPower, float jumpCameraShakingDuration) { Level = level; Size = size; MaxHp = maxHp; AnimationLength = animationLength; RandomCooldown = randomCooldown; ViewRange = viewRange; HasRabbit = hasRabbit; JumpCameraShakingPower = JumpCameraShakingPower; JumpCameraShakingDuration = JumpCameraShakingDuration; } public TitanSlimeState(TitanSlimeState titanSlimeState, bool hasRabbit = default) { Level = titanSlimeState.Level; Size = titanSlimeState.Size; MaxHp = titanSlimeState.MaxHp; AnimationLength = titanSlimeState.AnimationLength; ViewRange = titanSlimeState.ViewRange; RandomCooldown = titanSlimeState.RandomCooldown; HasRabbit = hasRabbit == default ? titanSlimeState.HasRabbit : hasRabbit; JumpCameraShakingPower = titanSlimeState.JumpCameraShakingPower; JumpCameraShakingDuration = titanSlimeState.JumpCameraShakingDuration; } } }