summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XMainClient/HomeFarmland.cs
blob: bc66f67cae9e9ff99a5814eb53a3a8a187a82843 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
using System;
using UnityEngine;
using XUtliPoolLib;

namespace XMainClient
{
	internal class HomeFarmland : Farmland
	{
		public override int BreakLevel
		{
			get
			{
				bool flag = this.m_breakLevel == -1;
				if (flag)
				{
					this.m_breakLevel = 0;
					SeqList<int> sequenceList = XSingleton<XGlobalConfig>.singleton.GetSequenceList("BreakFarmlandLevel", true);
					for (int i = 0; i < (int)sequenceList.Count; i++)
					{
						bool flag2 = (long)sequenceList[i, 0] == (long)((ulong)this.m_farmlandId);
						if (flag2)
						{
							this.m_breakLevel = sequenceList[i, 1];
							break;
						}
					}
				}
				return this.m_breakLevel;
			}
		}

		protected override Vector3 BoardRotation
		{
			get
			{
				bool flag = this.m_farmlandId > 3u;
				Vector3 result;
				if (flag)
				{
					result = new Vector3(-90f, 120f, 0f);
				}
				else
				{
					result = new Vector3(-90f, -120f, 0f);
				}
				return result;
			}
		}

		public HomeFarmland(uint farmlandId) : base(farmlandId)
		{
		}

		protected override void SetPerfab()
		{
			base.DestroyPerfab();
			bool flag = !base.IsLock || base.Doc.HomeType != HomeTypeEnum.MyHome;
			if (!flag)
			{
				XNpc npc = XSingleton<XEntityMgr>.singleton.GetNpc(base.NpcId);
				bool flag2 = npc == null;
				if (!flag2)
				{
					bool flag3 = (long)this.BreakLevel > (long)((ulong)XSingleton<XAttributeMgr>.singleton.XPlayerData.Level);
					string value;
					if (flag3)
					{
						value = XSingleton<XGlobalConfig>.singleton.GetValue("FarmBoardPath1");
					}
					else
					{
						value = XSingleton<XGlobalConfig>.singleton.GetValue("FarmBoardPath");
					}
					this.m_boardGo = XSingleton<XResourceLoaderMgr>.singleton.CreateFromPrefab(value, npc.EngineObject.Position, Quaternion.identity, true, false);
					bool flag4 = this.m_boardGo != null;
					if (flag4)
					{
						this.m_boardGo.transform.localEulerAngles = this.BoardRotation;
					}
					base.SetPerfab();
				}
			}
		}
	}
}