Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
EffectMeteor.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using DG.Tweening;
4using UnityEngine;
5
6public class EffectMeteor : Effect
7{
8 public Animator aniExplosion;
9
10 public Vector3 startPos;
11
12 public float time;
13
14 public override void OnPlay()
15 {
16 sr.enabled = true;
17 aniExplosion.SetActive(enable: false);
18 destV = fromV;
19 fromV += startPos + startPos.Random() * 0.2f;
20 base.transform.position = fromV;
21 moveTween = base.transform.DOMove(destV, time).SetEase(Ease.Linear).SetDelay(startDelay)
22 .OnComplete(delegate
23 {
24 sr.enabled = false;
25 aniExplosion.SetActive(enable: true);
26 destPos.Animate(AnimeID.Dig, animeBlock: true);
27 onComplete?.Invoke();
28 EMono.Sound.Play("explode", destV);
29 Shaker.ShakeCam("meteor");
30 });
31 }
32
33 public static void Create(Point center, int radius, int count, Action<int, Point> onComplete)
34 {
35 List<Point> list = new List<Point>();
36 for (int i = 0; i < count; i++)
37 {
38 Point p = center.Copy();
39 Effect effect = Effect.Get("meteor");
40 effect.startDelay = Rand.Range(0f, 0.5f);
41 if (radius > 0)
42 {
43 int num = 0;
44 if (num < 1000)
45 {
46 Point randomSurface = EMono._map.GetRandomSurface(center.x, center.z, radius);
47 foreach (Point item in list)
48 {
49 randomSurface.Equals(item);
50 }
51 p.Set(randomSurface);
52 list.Add(randomSurface);
53 }
54 }
55 int _i = i;
56 effect.onComplete = delegate
57 {
58 onComplete(_i, p);
59 };
60 effect.Play(p);
61 }
62 }
63}
AnimeID
Definition: AnimeID.cs:2
Definition: EMono.cs:4
static SoundManager Sound
Definition: EMono.cs:39
static Map _map
Definition: EMono.cs:17
override void OnPlay()
Definition: EffectMeteor.cs:14
Vector3 startPos
Definition: EffectMeteor.cs:10
static void Create(Point center, int radius, int count, Action< int, Point > onComplete)
Definition: EffectMeteor.cs:33
Animator aniExplosion
Definition: EffectMeteor.cs:8
Definition: Effect.cs:7
Point destPos
Definition: Effect.cs:76
static Effect Get(Effect original)
Definition: Effect.cs:85
float startDelay
Definition: Effect.cs:20
void Play(float delay, Point from, float fixY=0f, Point to=null, Sprite sprite=null)
Definition: Effect.cs:100
Action onComplete
Definition: Effect.cs:52
Vector3 fromV
Definition: Effect.cs:61
Tween moveTween
Definition: Effect.cs:40
Vector3 destV
Definition: Effect.cs:64
Point GetRandomSurface(int x, int z, int radius, bool walkable=true, bool allowWater=false)
Definition: MapBounds.cs:182
Definition: Point.cs:9
Point Copy()
Definition: Point.cs:467
Point Set(int _x, int _z)
Definition: Point.cs:479
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
bool Equals(int _x, int _z)
Definition: Point.cs:924
void Animate(AnimeID id, bool animeBlock=false)
Definition: Point.cs:1266
Definition: Rand.cs:4
static int Range(int min, int max)
Definition: Rand.cs:42
Definition: Shaker.cs:5
static void ShakeCam(string id="default", float magnitude=1f)
Definition: Shaker.cs:25