782 lines
24 KiB
C#
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;
|
|
}
|
|
}
|