Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/EquipmentObject.cs
2026-02-21 16:45:37 +08:00

782 lines
24 KiB
C#

using System;
using System.Collections.Generic;
using BitStrap;
using UnityEngine;
[Serializable]
public class EquipmentObject
{
public enum EquipmentType
{
ROD = 0,
ICE_ROD = 1,
REEL = 2,
LINE = 3,
FLOAT = 4,
HOOK = 5,
BAIT = 6,
OTHER = 7,
BOILIE = 8,
ROD_STAND = 9,
FEEDER = 10,
FEEDER_BAIT = 11,
BITE_INDICATOR = 12,
COUNT = 13
}
public enum EquipmentSubType
{
FILLET = 0,
FILLET_FRIED = 1,
BEER = 2,
DRILLER = 3,
FISHING_NET = 4,
GAS_STOVE = 5,
FLOAT_WEIGHT = 6
}
[Serializable]
public class Parameter
{
public enum ParameterType
{
STRING = 0,
INT = 1,
FLOAT = 2,
BOOL = 3
}
public string parameterName = "EQUIPMENT/PARAMETER_TEST_NAME";
public ParameterType type;
public string parameterString = "EQUIPMENT/PARAMETER_TEST_VALUE";
public int parameterInt = 1;
public float parameterFloat = 1f;
public bool parameterBool = true;
public bool isVisible = true;
}
public string id = string.Empty;
public GameObject prefab;
public int price = 100;
public int level = 1;
public Sprite icon;
public int producerId;
public Sprite producerIcon;
[ReadOnly]
public string producerName = string.Empty;
public string equipmentName = string.Empty;
public string equipmentTranslateName = string.Empty;
public string description = "EQUIPMENT/TEST_DESCRIPTION";
public bool isBoughtAtStart;
public bool isBought;
public bool isEquipped;
public bool canBeSold = true;
public bool isAvailable = true;
[HideInInspector]
public bool isInDemo;
public bool onlyCheat;
[HideInInspector]
public bool onlyBeta;
public bool hasAmount;
public int amount = -1;
public int maxAmount = 99;
public EquipmentType equipmentType;
public EquipmentSubType equipmentSubType;
public bool isAvailableFromDLCs = true;
public List<DLCManager.DLC_ID> fromDLC = new List<DLCManager.DLC_ID>();
public List<Parameter> parameters = new List<Parameter>();
public List<float> sizes = new List<float>();
public void Awake()
{
}
public int GetCurrentSellPrice()
{
return GlobalSettings.Instance.playerSettings.GetMoneyUpdated(price);
}
public void Initialize(bool refresh = false)
{
if ((bool)GlobalSettings.Instance)
{
producerName = GlobalSettings.Instance.equipmentManager.GetProducerName(producerId);
}
Parameter parameter = null;
int num = 0;
if (equipmentType == EquipmentType.ROD || equipmentType == EquipmentType.ICE_ROD)
{
FishingRod component = prefab.GetComponent<FishingRod>();
component.CalculateWeightDurability();
parameter = ((!refresh) ? new Parameter() : parameters[0]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/TYPE");
parameter.type = Parameter.ParameterType.STRING;
if (component.rodType == FishingRod.RodType.CASTING)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/ROD_CASTING");
}
else if (component.rodType == FishingRod.RodType.FLY_FISHING)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/ROD_FLY");
}
else if (component.rodType == FishingRod.RodType.GROUND)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/ROD_FEEDER");
}
else if (component.rodType == FishingRod.RodType.ICE_FISHING)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/ROD_ICE");
}
else if (component.rodType == FishingRod.RodType.SPINNING)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/ROD_SPINNING");
}
else if (component.rodType == FishingRod.RodType.BAT)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/ROD_BAT");
}
if (!refresh)
{
parameters.Add(parameter);
}
parameter = ((!refresh) ? new Parameter() : parameters[1]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/DURABILITY");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = UtilitiesUnits.GetWeightString(component.weightDurability, "F1");
if (!refresh)
{
parameters.Add(parameter);
}
parameter = ((!refresh) ? new Parameter() : parameters[2]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/LENGTH");
parameter.type = Parameter.ParameterType.STRING;
int num2 = component.lengthSimple;
if (equipmentType != EquipmentType.ICE_ROD)
{
num2 = Mathf.RoundToInt((float)component.lengthSimple * 0.75f / 10f) * 10;
}
parameter.parameterString = UtilitiesUnits.GetLengthCmString(num2, (!GlobalSettings.Instance.playerSettings.imperialUnits) ? "F0" : "F1");
if (!refresh)
{
parameters.Add(parameter);
}
if (equipmentType == EquipmentType.ICE_ROD)
{
FishingReel component2 = component.mountedReel.GetComponent<FishingReel>();
component2.CalculateDragWeight();
parameter = ((!refresh) ? new Parameter() : parameters[3]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/DURABILITY") + ": " + Utilities.GetTranslation("EQUIPMENT/REEL");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = UtilitiesUnits.GetWeightString(component2.maxDragWeight, "F1");
if (!refresh)
{
parameters.Add(parameter);
}
parameter = ((!refresh) ? new Parameter() : parameters[4]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/DRAG_PRECISION");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = component2.dragSteps + "/10";
if (!refresh)
{
parameters.Add(parameter);
}
parameter = ((!refresh) ? new Parameter() : parameters[5]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/LINE_CAPACITY");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = UtilitiesUnits.GetLengthString(component2.maxLineLength, "F0");
if (!refresh)
{
parameters.Add(parameter);
}
}
}
else if (equipmentType == EquipmentType.REEL)
{
FishingReel component3 = prefab.GetComponent<FishingReel>();
if (component3.dragSteps > 10)
{
component3.dragSteps = 10;
}
component3.CalculateDragWeight();
parameter = ((!refresh) ? new Parameter() : parameters[num++]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/TYPE");
parameter.type = Parameter.ParameterType.STRING;
if (component3.reelType == FishingReel.ReelType.STANDARD)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/REEL_SPINNING");
}
else if (component3.reelType == FishingReel.ReelType.LINE_COUNTER)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/REEL_LINE_COUNTER");
}
else if (component3.reelType == FishingReel.ReelType.GROUND)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/REEL_GROUND");
}
else if (component3.reelType == FishingReel.ReelType.FLY)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/REEL_FLY");
}
if (!refresh)
{
parameters.Add(parameter);
}
if (component3.reelType != FishingReel.ReelType.FLY)
{
parameter = ((!refresh) ? new Parameter() : parameters[num++]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/SIZE");
parameter.type = Parameter.ParameterType.INT;
parameter.parameterInt = component3.reelSize;
if (!refresh)
{
parameters.Add(parameter);
}
}
parameter = ((!refresh) ? new Parameter() : parameters[num++]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/DURABILITY");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = UtilitiesUnits.GetWeightString(component3.maxDragWeight, "F1");
if (!refresh)
{
parameters.Add(parameter);
}
parameter = ((!refresh) ? new Parameter() : parameters[num++]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/DRAG_PRECISION");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = component3.dragSteps + "/10";
if (!refresh)
{
parameters.Add(parameter);
}
parameter = ((!refresh) ? new Parameter() : parameters[num++]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/LINE_CAPACITY");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = UtilitiesUnits.GetLengthString(component3.maxLineLength, "F0");
if (!refresh)
{
parameters.Add(parameter);
}
if (component3.reelType == FishingReel.ReelType.FLY)
{
parameter = ((!refresh) ? new Parameter() : parameters[num++]);
if (!refresh)
{
parameters.Add(parameter);
}
parameter.isVisible = false;
}
}
else if (equipmentType == EquipmentType.LINE)
{
FishingLine component4 = prefab.GetComponent<FishingLine>();
component4.CalculateWeightDurability();
parameter = ((!refresh) ? new Parameter() : parameters[0]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/DURABILITY");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = UtilitiesUnits.GetWeightString(component4.weightDurability);
if (!refresh)
{
parameters.Add(parameter);
}
component4.UpdateThickness();
parameter = ((!refresh) ? new Parameter() : parameters[1]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/THICKNESS");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = UtilitiesUnits.GetLengthMMString(component4.thikness);
if (!refresh)
{
parameters.Add(parameter);
}
parameter = ((!refresh) ? new Parameter() : parameters[2]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/TYPE");
parameter.type = Parameter.ParameterType.STRING;
if (component4.lineType == FishingLine.LineType.MONO)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/LINE_MONOFILAMENT");
}
else if (component4.lineType == FishingLine.LineType.BRAID)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/LINE_BRAID");
}
else if (component4.lineType == FishingLine.LineType.FLUORO)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/LINE_FLUORO");
}
else if (component4.lineType == FishingLine.LineType.FLY)
{
if (component4.flyLineType == FishingLine.FlyLineType.FLOATING)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/LINE_FLY_FLOATING");
}
else if (component4.flyLineType == FishingLine.FlyLineType.SINKING)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/LINE_FLY_SINKING");
}
else if (component4.flyLineType == FishingLine.FlyLineType.SINK_TIP)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/LINE_FLY_SINK_TIP");
}
}
if (!refresh)
{
parameters.Add(parameter);
}
}
else if (equipmentType == EquipmentType.HOOK)
{
Bait component5 = prefab.GetComponent<Bait>();
parameter = ((!refresh) ? new Parameter() : parameters[0]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/SIZE");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = string.Empty;
for (int i = 0; i < sizes.Count; i++)
{
if (!refresh)
{
sizes[i] += 1f;
}
parameter.parameterString += UtilitiesUnits.GetHookSizeString((int)sizes[i]);
if (i < sizes.Count - 1)
{
parameter.parameterString += ", ";
}
}
if (!refresh)
{
parameters.Add(parameter);
}
if (component5.baitType == Bait.BaitType.HOOK)
{
parameter = ((!refresh) ? new Parameter() : parameters[1]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/MAX_BAITS");
parameter.type = Parameter.ParameterType.INT;
parameter.parameterInt = component5.baitPartsMax;
if (!refresh)
{
parameters.Add(parameter);
}
}
else
{
parameter = ((!refresh) ? new Parameter() : parameters[1]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/TYPE");
parameter.type = Parameter.ParameterType.STRING;
if (component5.baitType == Bait.BaitType.WOBBLER)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/BAIT_WOBBLER");
}
else if (component5.baitType == Bait.BaitType.SOFT_BAIT)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/BAIT_SOFT_BAIT");
}
else if (component5.baitType == Bait.BaitType.SPINNER)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/BAIT_SPINNER");
}
else if (component5.baitType == Bait.BaitType.SPOON)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/BAIT_SPOON");
}
else if (component5.baitType == Bait.BaitType.FLY)
{
if (component5.flyType == Bait.FlyType.DRY)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/FLY_DRY");
}
else if (component5.flyType == Bait.FlyType.WET)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/FLY_WET");
}
else if (component5.flyType == Bait.FlyType.NYMPH)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/FLY_NYMPH");
}
else if (component5.flyType == Bait.FlyType.STREAMER)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/FLY_STREAMER");
}
}
if (!refresh)
{
parameters.Add(parameter);
}
}
if (GlobalSettings.Instance.playerSettings.IsCasual())
{
FishManager fishManager = GlobalSettings.Instance.fishManager;
Vector2 one = Vector2.one;
Vector2 one2 = Vector2.one;
if (sizes.Count > 0)
{
if (component5.baitType == Bait.BaitType.HOOK)
{
one = fishManager.hookToFishWeight[(int)sizes[0]];
one2 = fishManager.hookToFishWeight[(int)sizes[sizes.Count - 1]];
}
else if (component5.baitType == Bait.BaitType.FLY)
{
one = fishManager.flyToFishWeight[(int)sizes[0]];
one2 = fishManager.flyToFishWeight[(int)sizes[sizes.Count - 1]];
}
else
{
one = fishManager.lureToFishWeight[(int)sizes[0]];
one2 = fishManager.lureToFishWeight[(int)sizes[sizes.Count - 1]];
}
string parameterString = UtilitiesUnits.GetWeightString(one.x) + " - " + UtilitiesUnits.GetWeightString(one2.y);
parameter = ((!refresh) ? new Parameter() : parameters[2]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/HOOK_TO_WEIGHT");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = parameterString;
if (!refresh)
{
parameters.Add(parameter);
}
}
}
else if (parameters.Count > 2)
{
parameters.RemoveAt(2);
}
}
else if (equipmentType == EquipmentType.BAIT)
{
BaitPart component6 = prefab.GetComponent<BaitPart>();
}
else if (equipmentType == EquipmentType.FLOAT)
{
FishingFloat component7 = prefab.GetComponent<FishingFloat>();
parameter = ((!refresh) ? new Parameter() : parameters[0]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/LENGTH");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = UtilitiesUnits.GetLengthCmString(component7.length);
if (!refresh)
{
parameters.Add(parameter);
}
parameter = ((!refresh) ? new Parameter() : parameters[1]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/OPTIMAL_WEIGHT");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = Mathf.RoundToInt(component7.optimalBurden) + " " + Utilities.GetTranslation("UNITS/GRAMS");
if (GlobalSettings.Instance.playerSettings.imperialUnits)
{
Parameter parameter2 = parameter;
parameter2.parameterString = parameter2.parameterString + " (" + UtilitiesUnits.GetWeightGramString(Mathf.RoundToInt(component7.optimalBurden)) + ")";
}
if (!refresh)
{
parameters.Add(parameter);
}
parameter = ((!refresh) ? new Parameter() : parameters[2]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/WEIGHT");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = UtilitiesUnits.GetWeightGramString(component7.realMass, "F1");
if (!refresh)
{
parameters.Add(parameter);
}
parameter.isVisible = false;
}
else if (equipmentType == EquipmentType.ROD_STAND)
{
RodStand component8 = prefab.GetComponent<RodStand>();
parameter = ((!refresh) ? new Parameter() : parameters[0]);
parameter.parameterName = Utilities.GetTranslation("GUI/BTN_RODS");
if (component8.isBoatStand)
{
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = Utilities.GetTranslation("EDITOR/CATEGORY_BOATS");
}
else
{
parameter.type = Parameter.ParameterType.INT;
parameter.parameterInt = component8.rodPlaces.Count;
}
if (!refresh)
{
parameters.Add(parameter);
}
parameter = ((!refresh) ? new Parameter() : parameters[1]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/ELECTRONIC_INDICATOR");
parameter.type = Parameter.ParameterType.STRING;
if (component8.isHorizontal)
{
parameter.parameterString = Utilities.GetTranslation("GUI/BTN_YES");
}
else
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/CANT_BE_USED");
}
if (!refresh)
{
parameters.Add(parameter);
}
parameter = ((!refresh) ? new Parameter() : parameters[2]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/PLACEMENT");
parameter.type = Parameter.ParameterType.STRING;
if (component8.isBoatStand)
{
parameter.parameterString = Utilities.GetTranslation("All Boats");
}
else if (component8.onlyOnTerrain)
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/GROUND");
}
else
{
parameter.parameterString = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/GROUND_PIERS");
}
if (!refresh)
{
parameters.Add(parameter);
}
}
else if (equipmentType == EquipmentType.BITE_INDICATOR)
{
BiteIndicator component9 = prefab.GetComponent<BiteIndicator>();
parameter = ((!refresh) ? new Parameter() : parameters[0]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/VOLUME");
parameter.type = Parameter.ParameterType.STRING;
if (component9.indicatorType == BiteIndicator.IndicatorType.BELL)
{
parameter.parameterString = Utilities.GetTranslation("GUI/QUALITY_MEDIUM");
}
else if (component9.indicatorType == BiteIndicator.IndicatorType.ELECTRONIC)
{
parameter.parameterString = Utilities.GetTranslation("GUI/QUALITY_HIGH");
}
if (!refresh)
{
parameters.Add(parameter);
}
}
else if (equipmentType == EquipmentType.FEEDER)
{
Feeder component10 = prefab.GetComponent<Feeder>();
parameter = ((!refresh) ? new Parameter() : parameters[0]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/DURATION");
parameter.type = Parameter.ParameterType.STRING;
if (component10.feederType == Feeder.FeederType.WEIGHT)
{
parameter.parameterString = "-";
}
else
{
parameter.parameterString = string.Empty + (int)(component10.duration / 60f) + " " + Utilities.GetTranslation("UNITS/MINUTES");
}
if (!refresh)
{
parameters.Add(parameter);
}
parameter = ((!refresh) ? new Parameter() : parameters[1]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/EFFECTIVENESS");
parameter.type = Parameter.ParameterType.STRING;
if (component10.feederType == Feeder.FeederType.WEIGHT)
{
parameter.parameterString = "-";
}
else
{
parameter.parameterString = string.Empty + Mathf.RoundToInt(component10.multiplier * 100f) + " %";
}
if (!refresh)
{
parameters.Add(parameter);
}
}
else if (equipmentType == EquipmentType.OTHER && equipmentSubType == EquipmentSubType.FLOAT_WEIGHT)
{
FloatWeight component11 = prefab.GetComponent<FloatWeight>();
parameter = ((!refresh) ? new Parameter() : parameters[0]);
parameter.parameterName = Utilities.GetTranslation("EQUIPMENT_PARAMETERS/MASS");
parameter.type = Parameter.ParameterType.STRING;
parameter.parameterString = component11.weight.ToString("F1") + " " + Utilities.GetTranslation("UNITS/GRAMS");
if (GlobalSettings.Instance.playerSettings.imperialUnits)
{
Parameter parameter3 = parameter;
parameter3.parameterString = parameter3.parameterString + " (" + UtilitiesUnits.GetWeightGramString(component11.weight) + ")";
}
if (!refresh)
{
parameters.Add(parameter);
}
}
if (fromDLC.Count > 0)
{
isAvailableFromDLCs = DLCManager.Instance.IsAnyDLCInstalled(fromDLC);
}
else
{
isAvailableFromDLCs = isAvailable;
}
}
public void CalculateValue()
{
float num = -1f;
if (equipmentType == EquipmentType.ROD)
{
FishingRod component = prefab.GetComponent<FishingRod>();
num = component.durability;
}
else if (equipmentType == EquipmentType.ICE_ROD)
{
FishingRod component2 = prefab.GetComponent<FishingRod>();
FishingReel mountedReel = component2.mountedReel;
num = component2.durability * 1.5f;
num += mountedReel.durability * 1.7f;
num += ((float)mountedReel.dragSteps + 1f) / (float)FishingReel.maxDragSteps * 0.3f;
num += Mathf.InverseLerp(50f, 120f, mountedReel.maxLineLength) * 0.8f;
num /= 4.3f;
num *= 1.2f;
}
else if (equipmentType == EquipmentType.REEL)
{
FishingReel component3 = prefab.GetComponent<FishingReel>();
num = component3.durability * 1.7f;
num += ((float)component3.dragSteps + 1f) / (float)FishingReel.maxDragSteps * 0.3f;
num += Mathf.InverseLerp(60f, 350f, component3.maxLineLength) * 0.8f;
num /= 2.8f;
}
else if (equipmentType == EquipmentType.LINE)
{
FishingLine component4 = prefab.GetComponent<FishingLine>();
num = component4.durability;
}
else if (equipmentType == EquipmentType.HOOK)
{
Bait component5 = prefab.GetComponent<Bait>();
num = Utilities.GetAverage(sizes) / 18f;
if (component5.baitType == Bait.BaitType.HOOK)
{
num += (float)component5.baitPartsMax / 3f;
num *= 0.5f;
}
num *= component5.valueMultiplier;
}
else if (equipmentType == EquipmentType.BAIT)
{
BaitPart component6 = prefab.GetComponent<BaitPart>();
num = component6.priceFactor;
num *= 0.65f;
}
else if (equipmentType == EquipmentType.FLOAT)
{
FishingFloat component7 = prefab.GetComponent<FishingFloat>();
num = component7.optimalBurden / 30f;
}
else if (equipmentType == EquipmentType.OTHER && equipmentSubType == EquipmentSubType.FLOAT_WEIGHT)
{
FloatWeight component8 = prefab.GetComponent<FloatWeight>();
}
if (equipmentType != EquipmentType.ROD && equipmentType != EquipmentType.REEL && equipmentType != EquipmentType.LINE)
{
num = Mathf.Clamp(num, -1f, 1f);
}
Vector2 equipmentPriceAndLevel = GlobalSettings.Instance.equipmentManager.GetEquipmentPriceAndLevel(equipmentType, num);
if (num >= 0f)
{
price = Mathf.RoundToInt(equipmentPriceAndLevel.x);
level = Mathf.RoundToInt(equipmentPriceAndLevel.y);
}
}
public string GetFullName()
{
if (equipmentTranslateName != string.Empty)
{
return Utilities.GetTranslation(equipmentTranslateName);
}
if (equipmentName != string.Empty)
{
return producerName + " " + equipmentName;
}
return string.Empty;
}
public void Buy()
{
isBought = true;
if (IsBuyAndEquip())
{
isEquipped = true;
}
if (hasAmount)
{
amount++;
}
}
public void SetAmount(int newAmount)
{
isBought = true;
if (IsBuyAndEquip())
{
isEquipped = true;
}
if (hasAmount)
{
amount = newAmount;
}
}
public void Sell()
{
if (hasAmount && amount > 0)
{
amount--;
return;
}
Equip(false);
isBought = false;
}
public void Equip(bool equip)
{
isEquipped = equip;
}
public bool IsBuyAndEquip()
{
return equipmentType == EquipmentType.OTHER && (equipmentSubType == EquipmentSubType.FISHING_NET || equipmentSubType == EquipmentSubType.DRILLER);
}
public bool CanAllBeSold()
{
return equipmentType != EquipmentType.ROD && equipmentType != EquipmentType.REEL && equipmentType != EquipmentType.LINE && equipmentType != EquipmentType.HOOK && equipmentType != EquipmentType.BAIT;
}
}