summaryrefslogtreecommitdiff
path: root/Client/Assembly-CSharp/PetBehaviour.cs
blob: bf94b13f09d2b965543c4edf598f78254b3c76a6 (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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
using System;
using PowerTools;
using UnityEngine;

public class PetBehaviour : MonoBehaviour, IBuyable
{
	public string ProdId
	{
		get
		{
			return this.ProductId;
		}
	}

	public bool Visible
	{
		set
		{
			this.rend.enabled = value;
			this.shadowRend.enabled = value;
		}
	}

	private const float SnapDistance = 2f;

	public bool Free;

	public string ProductId;

	public string StoreName;

	public uint SteamId;

	public int ItchId;

	public string ItchUrl;

	public PlayerControl Source;

	public const float MinDistance = 0.2f;

	public const float damping = 0.7f;

	public const float Easing = 0.2f;

	public const float Speed = 5f;

	public float YOffset = -0.25f;

	public SpriteAnim animator;

	public SpriteRenderer rend;

	public SpriteRenderer shadowRend;

	public Rigidbody2D body;

	public Collider2D Collider;

	public AnimationClip idleClip;

	public AnimationClip sadClip;

	public AnimationClip scaredClip;

	public AnimationClip walkClip;

	private Vector2 GetTruePosition()
	{
		return base.transform.position + this.Collider.offset * 0.7f;
	}

	public void FixedUpdate()
	{
		if (!this.Source)
		{
			this.body.velocity = Vector2.zero;
			return;
		}
		this.Visible = this.Source.Visible;
		Vector2 truePosition = this.Source.GetTruePosition();
		Vector2 truePosition2 = this.GetTruePosition();
		Vector2 vector = this.body.velocity;
		Vector2 a = truePosition - truePosition2;
		float num = 0f;
		if (this.Source.CanMove)
		{
			num = 0.2f;
		}
		if (a.sqrMagnitude > num)
		{
			if (a.sqrMagnitude > 2f)
			{
				base.transform.position = truePosition;
				return;
			}
			a *= 5f * PlayerControl.GameOptions.PlayerSpeedMod;
			vector = vector * 0.8f + a * 0.2f;
		}
		else
		{
			vector *= 0.7f;
		}
		AnimationClip currentAnimation = this.animator.GetCurrentAnimation();
		if (vector.sqrMagnitude > 0.01f)
		{
			if (currentAnimation != this.walkClip)
			{
				this.animator.Play(this.walkClip, 1f);
			}
			if (vector.x < -0.01f)
			{
				this.rend.flipX = true;
			}
			else if (vector.x > 0.01f)
			{
				this.rend.flipX = false;
			}
		}
		else if (currentAnimation == this.walkClip)
		{
			this.animator.Play(this.idleClip, 1f);
		}
		this.body.velocity = vector;
	}

	private void LateUpdate()
	{
		Vector3 localPosition = base.transform.localPosition;
		localPosition.z = (localPosition.y + this.YOffset) / 1000f + 0.0002f;
		base.transform.localPosition = localPosition;
	}

	public void SetMourning()
	{
		this.Source = null;
		this.body.velocity = Vector2.zero;
		this.animator.Play(this.sadClip, 1f);
	}
}