Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
RigidExplode.cs
Go to the documentation of this file.
1using UnityEngine;
2
4{
5 public ParticleSystem particle;
6
7 public float force = 20f;
8
9 public float radius = 2.5f;
10
11 public float intervalMin = 5f;
12
13 public float intervalMax = 30f;
14
15 public float massPower = 0.1f;
16
17 public float chance = 0.8f;
18
19 public bool repeat;
20
21 public bool destroy = true;
22
23 public string sound = "explode";
24
25 private float time;
26
27 private float interval = 1f;
28
29 private void Start()
30 {
32 }
33
34 public void Explode()
35 {
36 Vector2 position = rb.position;
37 if ((bool)particle)
38 {
39 ParticleSystem p = Object.Instantiate(particle);
40 p.transform.position = position;
41 TweenUtil.Delay(5f, delegate
42 {
43 if ((bool)p && (bool)p.gameObject)
44 {
45 Object.DestroyImmediate(p.gameObject);
46 }
47 });
48 }
49 RaycastHit2D[] array = Physics2D.CircleCastAll(position, radius, Vector3.forward);
50 foreach (RaycastHit2D raycastHit2D in array)
51 {
52 Rigidbody2D component = raycastHit2D.collider.GetComponent<Rigidbody2D>();
53 if ((bool)component)
54 {
55 Vector2 vector = component.position - position;
56 component.AddForce(vector * force * (1f + component.mass * massPower), ForceMode2D.Impulse);
57 }
58 }
59 if (!sound.IsEmpty())
60 {
61 EMono.Sound.Play(sound, rb.position);
62 }
63 }
64
65 public override void OnFixedUpdate()
66 {
68 if (!(time > interval))
69 {
70 return;
71 }
72 if (chance >= Random.Range(0f, 1f))
73 {
74 Explode();
75 if (destroy)
76 {
77 active = false;
78 CollectibleActor component = base.gameObject.GetComponent<CollectibleActor>();
79 if ((bool)component)
80 {
81 component.Deactivate();
82 }
83 else
84 {
85 base.gameObject.SetActive(value: false);
86 }
87 return;
88 }
89 }
90 if (repeat)
91 {
92 time = 0f;
93 }
94 else
95 {
96 active = false;
97 }
98 }
99}
Definition: EMono.cs:4
static SoundManager Sound
Definition: EMono.cs:39
void Explode()
Definition: RigidExplode.cs:34
float interval
Definition: RigidExplode.cs:27
float massPower
Definition: RigidExplode.cs:15
string sound
Definition: RigidExplode.cs:23
float intervalMin
Definition: RigidExplode.cs:11
override void OnFixedUpdate()
Definition: RigidExplode.cs:65
float intervalMax
Definition: RigidExplode.cs:13
ParticleSystem particle
Definition: RigidExplode.cs:5
float radius
Definition: RigidExplode.cs:9
void Start()
Definition: RigidExplode.cs:29
Rigidbody2D rb
Definition: RigidUpdate.cs:13
static float delta
Definition: RigidUpdate.cs:6