Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
EffectIRenderer.cs
Go to the documentation of this file.
1using UnityEngine;
2
3public class EffectIRenderer : Effect
4{
5 public Card card;
6
7 public Card origin;
8
9 public Point from;
10
11 public float snapInterval;
12
13 public bool follow;
14
16
18
19 private float snapTimer;
20
21 private Vector3 v;
22
23 public EffectIRenderer Play(Card _card, Card _origin, Vector3 _to)
24 {
26 {
27 Kill();
28 return null;
29 }
30 card = _card;
31 origin = _origin;
32 destV = _to;
33 from = _origin.pos.Copy();
34 snapTimer = -0.01f;
35 Activate();
36 OnUpdate();
37 if ((bool)animeData)
38 {
39 anime = new TransAnime
40 {
41 data = animeData,
42 renderer = card.renderer
43 }.Init();
44 }
45 return this;
46 }
47
48 public EffectIRenderer Play(Card origin, Card _card, Point from, Point to = null, float fixY = 0f)
49 {
50 card = _card;
51 snapTimer = -0.01f;
52 this.from = from.Copy();
54 {
55 _Play(from, origin.renderer.position, fixY, to);
56 }
57 else
58 {
59 Play(from, fixY, to);
60 }
61 if ((bool)animeData)
62 {
63 anime = new TransAnime
64 {
65 data = animeData,
66 renderer = card.renderer
67 }.Init();
68 }
69 return this;
70 }
71
72 public override void OnUpdate()
73 {
74 RenderParam renderParam = card.GetRenderParam();
76 timer += Core.delta;
78 anime?.Update();
79 if (snapTimer < 0f || v == Vector3.zero)
80 {
81 if (follow)
82 {
83 if (origin.renderer != null)
84 {
85 Vector3 position = origin.renderer.position;
86 Vector3 vector = destV * timer / duration * speed;
87 v.x = position.x + posFix.x + vector.x;
88 v.y = position.y + posFix.y + vector.y;
89 v.z = position.z + posFix.z + vector.z;
90 }
91 }
92 else
93 {
94 v.x = base.transform.position.x;
95 v.y = base.transform.position.y;
96 v.z = base.transform.position.z;
97 }
98 if (anime != null)
99 {
100 v.x += anime.v.x;
101 v.y += anime.v.y;
102 v.z += anime.v.z;
103 }
105 }
106 renderParam.x = v.x;
107 renderParam.y = v.y;
108 renderParam.z = v.x;
109 card.renderer.skip = true;
111 {
112 card.renderer.data.Draw(renderParam);
113 return;
114 }
116 {
118 }
119 if ((bool)card.renderer.actor)
120 {
121 card.renderer.actor.OnRender(renderParam);
122 card.renderer.isSynced = false;
123 }
124 }
125
126 public override void OnKill()
127 {
128 if (card != null && card.renderer.hasActor)
129 {
131 }
132 }
133}
BaseTileMap tileMap
int GetApproximateBlocklight(Cell cell)
virtual void OnRender(RenderParam p)
Definition: CardActor.cs:103
Vector3 position
Definition: CardRenderer.cs:21
override void OnEnterScreen()
CardActor actor
Definition: CardRenderer.cs:11
void KillActor()
Definition: Card.cs:11
bool ExistsOnMap
Definition: Card.cs:1961
RenderParam GetRenderParam()
Definition: Card.cs:5248
Point pos
Definition: Card.cs:55
CardRenderer renderer
Definition: Card.cs:57
Definition: Core.cs:14
bool IsGameStarted
Definition: Core.cs:84
static float delta
Definition: Core.cs:17
Definition: EMono.cs:4
static Core core
Definition: EMono.cs:5
static Scene scene
Definition: EMono.cs:27
override void OnUpdate()
TransAnimeData animeData
TransAnime anime
override void OnKill()
EffectIRenderer Play(Card origin, Card _card, Point from, Point to=null, float fixY=0f)
EffectIRenderer Play(Card _card, Card _origin, Vector3 _to)
Definition: Effect.cs:7
float speed
Definition: Effect.cs:18
Effect _Play(Point from, Vector3 fromV, float fixY=0f, Point to=null, Sprite sprite=null)
Definition: Effect.cs:115
float duration
Definition: Effect.cs:16
void Kill()
Definition: Effect.cs:238
float timer
Definition: Effect.cs:58
Vector3 destV
Definition: Effect.cs:64
void Activate()
Definition: Effect.cs:179
Definition: Point.cs:9
Point Copy()
Definition: Point.cs:467
Cell cell
Definition: Point.cs:51
void Draw(RenderParam p, int tile)
Definition: RenderData.cs:128
RenderData data
Definition: RenderObject.cs:34
GameScreen screenElin
Definition: Scene.cs:89
Vector3 v
Definition: TransAnime.cs:5
bool Update()
Definition: TransAnime.cs:40