Elin Decompiled Documentation EA 23.336 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 SoundData soundExplode;
13
14 public SpriteRenderer sr2;
15
16 public float time;
17
18 public override void OnPlay()
19 {
20 sr.enabled = true;
21 aniExplosion.SetActive(enable: false);
22 destV = fromV;
23 fromV += startPos + startPos.Random() * 0.2f;
24 base.transform.position = fromV;
25 moveTween = base.transform.DOMove(destV, time).SetEase(Ease.Linear).SetDelay(startDelay)
26 .OnComplete(delegate
27 {
28 sr.enabled = false;
29 aniExplosion.SetActive(enable: true);
30 destPos.Animate(AnimeID.Dig, animeBlock: true);
31 onComplete?.Invoke();
34 {
35 Shaker.ShakeCam("meteor");
36 }
37 });
38 }
39
40 public static void Create(Point center, int radius, int count, Action<int, Point> onComplete)
41 {
42 List<Point> list = new List<Point>();
43 for (int i = 0; i < count; i++)
44 {
45 Point p = center.Copy();
46 Effect effect = Effect.Get("meteor");
47 effect.startDelay = Rand.Range(0f, 0.5f);
48 if (radius > 0)
49 {
50 int num = 0;
51 if (num < 1000)
52 {
53 Point point = ((radius == 0) ? center : EMono._map.GetRandomSurface(center.x, center.z, radius));
54 foreach (Point item in list)
55 {
56 point.Equals(item);
57 }
58 p.Set(point);
59 list.Add(point);
60 }
61 }
62 int _i = i;
63 effect.onComplete = delegate
64 {
65 onComplete(_i, p);
66 };
67 effect.Play(p);
68 }
69 }
70
71 public static void CreateComet(Point center, Action<int, Point> onComplete, Color color)
72 {
73 Point p = center.Copy();
74 EffectMeteor obj = Effect.Get("meteor_comet") as EffectMeteor;
75 obj.onComplete = delegate
76 {
77 onComplete(0, p);
78 };
79 obj.sr.color = color;
80 obj.Play(p);
81 }
82}
AnimeID
Definition: AnimeID.cs:2
if(!match.Success)
CoreConfig config
Definition: Core.cs:70
Definition: EMono.cs:4
static Core core
Definition: EMono.cs:5
static SoundManager Sound
Definition: EMono.cs:39
static Map _map
Definition: EMono.cs:17
SpriteRenderer sr2
Definition: EffectMeteor.cs:14
override void OnPlay()
Definition: EffectMeteor.cs:18
Vector3 startPos
Definition: EffectMeteor.cs:10
SoundData soundExplode
Definition: EffectMeteor.cs:12
static void Create(Point center, int radius, int count, Action< int, Point > onComplete)
Definition: EffectMeteor.cs:40
static void CreateComet(Point center, Action< int, Point > onComplete, Color color)
Definition: EffectMeteor.cs:71
Animator aniExplosion
Definition: EffectMeteor.cs:8
Definition: Effect.cs:7
Point destPos
Definition: Effect.cs:73
static Effect Get(Effect original)
Definition: Effect.cs:80
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:491
Point Set(int _x, int _z)
Definition: Point.cs:503
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
bool Equals(int _x, int _z)
Definition: Point.cs:966
void Animate(AnimeID id, bool animeBlock=false)
Definition: Point.cs:1308
Definition: Rand.cs:4
static int Range(int min, int max)
Definition: Rand.cs:49