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);
}
}
}
|