summaryrefslogtreecommitdiff
path: root/ROUNDS/PlayerAIPetter.cs
blob: 0c235f57646d85048bf481cea3dbf9ab6a2f5eba (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
using UnityEngine;

public class PlayerAIPetter : MonoBehaviour
{
	private PlayerAPI api;

	public LayerMask m_layer;

	public AnimationCurve aimCurve;

	public float m_shootRandom = 0.9f;

	public float m_predDist = 1f;

	public float m_timeSinceGround = 0.1f;

	private BoxCollider2D m_collider;

	private void Start()
	{
		api = GetComponentInParent<PlayerAPI>();
		m_collider = api.GetComponentInChildren<BoxCollider2D>();
	}

	private void Update()
	{
		if ((double)Random.Range(0f, 1f) > 0.9)
		{
			api.Move(api.TowardsOtherPlayer() * -1f);
		}
		else
		{
			api.Move(api.TowardsOtherPlayer());
		}
		PredictionHit();
		api.Attack();
		if ((double)Random.Range(0f, 1f) > 0.9)
		{
			api.Jump();
		}
		AutoBlock();
	}

	private void AutoBlock()
	{
		foreach (BulletWrapper allBullet in api.GetAllBullets())
		{
			RaycastHit2D raycastHit2D = Physics2D.Raycast(allBullet.projectileMovement.transform.position, ((Vector2)allBullet.projectileMovement.velocity).normalized, allBullet.velocity.magnitude * 5f * TimeHandler.deltaTime, m_layer);
			if ((bool)raycastHit2D.transform && (!allBullet.projectileHit.ownPlayer || allBullet.projectileHit.ownPlayer != api.player) && raycastHit2D.transform.root == base.transform.root)
			{
				Debug.Log("BLICOK");
				api.Block();
			}
		}
	}

	private void PredictionHit()
	{
		if ((bool)api.GetOtherPlayer())
		{
			float magnitude = (api.OtherPlayerPosition() - base.transform.position).magnitude;
			Vector2 vector = api.GetOtherPlayer().data.playerVel.velocity * m_predDist * 0.1f * magnitude * 0.05f;
			api.SetAimDirection(api.TowardsOtherPlayer() + Vector2.up * aimCurve.Evaluate(magnitude) + vector);
		}
	}
}