Elin Modding Docs Doc
Loading...
Searching...
No Matches
CardRenderer.cs
1using System;
2using System.Collections.Generic;
3using System.Runtime.CompilerServices;
4using UnityEngine;
5
6// Token: 0x0200018D RID: 397
8{
9 // Token: 0x06000B47 RID: 2887 RVA: 0x00045DEC File Offset: 0x00043FEC
10 public Vector3 PositionCenter()
11 {
12 return new Vector3(this.position.x + this.data.size.x + this.data.offset.x * 0.5f, this.position.y + this.data.size.y + this.data.offset.y, this.position.z);
13 }
14
15 // Token: 0x170002C5 RID: 709
16 // (get) Token: 0x06000B48 RID: 2888 RVA: 0x00045E69 File Offset: 0x00044069
17 public virtual bool IsMoving
18 {
19 get
20 {
21 return false;
22 }
23 }
24
25 // Token: 0x06000B49 RID: 2889 RVA: 0x00045E6C File Offset: 0x0004406C
26 public virtual void SetOwner(Card c)
27 {
28 this.owner = c;
29 if (this.data == null)
30 {
31 this.data = this.owner.sourceCard.renderData;
32 }
33 this.isChara = c.isChara;
34 this.usePass = (this.data.pass != null);
35 }
36
37 // Token: 0x06000B4A RID: 2890 RVA: 0x00045EC8 File Offset: 0x000440C8
38 public override void Draw(RenderParam p)
39 {
40 Vector3 newVector = p.NewVector3;
41 this.Draw(p, ref newVector, true);
42 }
43
44 // Token: 0x06000B4B RID: 2891 RVA: 0x00045EE8 File Offset: 0x000440E8
45 public override void RenderToRenderCam(RenderParam p)
46 {
47 Vector3 renderPos = EClass.scene.camSupport.renderPos;
48 if (this.data.multiSize)
49 {
50 renderPos.y -= 0.8f;
51 }
52 p.x = renderPos.x;
53 p.y = renderPos.y;
54 p.z = renderPos.z;
55 this.Draw(p, ref renderPos, false);
56 }
57
58 // Token: 0x06000B4C RID: 2892 RVA: 0x00045F50 File Offset: 0x00044150
59 public override void Draw(RenderParam p, ref Vector3 v, bool drawShadow)
60 {
61 if (this.skip)
62 {
63 this.skip = false;
64 return;
65 }
66 this.sync = RenderObject.syncFrame;
67 RenderObject.currentParam = p;
68 p.dir = this.owner.dir;
69 if (!this.isSynced)
70 {
71 this.OnEnterScreen();
72 RenderObject.syncList.Add(this);
73 }
74 if (this.orbit)
75 {
76 this.orbit.Refresh();
77 }
78 else
79 {
80 this.TrySpawnOrbit();
81 }
82 if (this.isChara && this.owner.parent == EClass.game.activeZone)
83 {
84 if (this.owner.Chara.bossText && !EClass.ui.IsActive && !SplashText.Instance)
85 {
86 SplashText splashText = Util.Instantiate<SplashText>("Media/Text/SplashText_boss2", EClass.ui.rectDynamic);
87 splashText.textSmall.text = this.owner.Chara.Aka.ToTitleCase(true);
88 splashText.textBig.text = this.owner.Chara.NameSimple.ToTitleCase(false);
89 this.owner.Chara.bossText = false;
90 }
91 if (this.owner.Chara.host == null)
92 {
93 this.UpdatePosition(ref v, p);
94 }
95 AI_Trolley ai_Trolley = this.owner.Chara.ai as AI_Trolley;
96 if (ai_Trolley != null && ai_Trolley.IsRunning)
97 {
98 drawShadow = false;
99 if (ai_Trolley.trolley.HideChara)
100 {
101 if (this.hasActor)
102 {
103 this.actor.SetActive(false);
104 }
105 return;
106 }
107 }
108 if (this.hasActor)
109 {
110 this.actor.SetActive(true);
111 }
112 }
113 else
114 {
115 p.x = (this.position.x = v.x);
116 p.y = (this.position.y = v.y);
117 p.z = (this.position.z = v.z);
118 }
119 if (this.anime != null)
120 {
121 this.anime.Update();
122 }
123 if (!this.isChara && !this.owner.IsInstalled && this.owner.category.tileDummy != 0 && !this.owner.isRoofItem && this.owner.ExistsOnMap && this.owner.trait.UseDummyTile)
124 {
125 SubPassData.Current = SubPassData.Default;
126 RenderDataObjDummy rendererObjDummy = EClass.scene.screenElin.tileMap.rendererObjDummy;
127 p.tile = (float)rendererObjDummy.tile;
128 p.dir = 0;
129 if (this.hasActor)
130 {
131 this.actor.SetActive(false);
132 }
133 rendererObjDummy.Draw(p);
134 if (drawShadow && !this.owner.pos.cell.ignoreObjShadow)
135 {
136 EClass.scene.screenElin.tileMap.passShadow.AddShadow(this.position.x + rendererObjDummy.offsetShadow.x, this.position.y + rendererObjDummy.offsetShadow.y + p.shadowFix, this.position.z + rendererObjDummy.offsetShadow.z, ShadowData.Instance.items[rendererObjDummy.shadowPref.shadow], rendererObjDummy.shadowPref, 0, p.snow);
137 }
138 }
139 else
140 {
141 SubPassData.Current = this.owner.GetSubPassData();
142 SourcePref pref = this.owner.Pref;
143 RenderData renderData = this.data;
144 int prefIndex = this.owner.PrefIndex;
145 if (Player.seedHallucination != 0 && this.<Draw>g__CanBeHallucinated|18_0())
146 {
147 Rand.SetSeed(Player.seedHallucination + this.owner.uid);
148 CardRow cardRow = null;
149 bool flag = false;
150 int i = 0;
151 while (i < 20)
152 {
153 if (this.owner.isChara)
154 {
155 cardRow = EClass.sources.charas.rows.RandomItem<SourceChara.Row>();
156 if (!cardRow.multisize)
157 {
158 goto IL_421;
159 }
160 }
161 else
162 {
163 cardRow = EClass.sources.things.rows.RandomItem<SourceThing.Row>();
164 if (cardRow.tileType == this.owner.TileType)
165 {
166 goto IL_421;
167 }
168 }
169 IL_47F:
170 i++;
171 continue;
172 IL_421:
173 if (cardRow.chance != 0 && cardRow._tiles.Length != 0 && cardRow.idActor.IsEmpty() && cardRow.idExtra.IsEmpty() && SubPassData.Current == SubPassData.Default && !(cardRow._idRenderData != this.owner.sourceCard._idRenderData))
174 {
175 flag = true;
176 break;
177 }
178 goto IL_47F;
179 }
180 if (flag)
181 {
182 renderData = cardRow.renderData;
183 pref = cardRow.pref;
184 cardRow.model.dir = this.owner.dir;
185 cardRow.model.SetRenderParam(p);
186 prefIndex = cardRow.model.PrefIndex;
187 }
188 Rand.SetSeed(-1);
189 }
190 if (this.owner.trait is TraitFigure)
191 {
192 if (!this.owner.c_idRefCard.IsEmpty() && (this.owner.IsInstalled || EClass.pc.held == this.owner || !this.owner.ExistsOnMap || this.owner.isRoofItem))
193 {
194 TraitFigure traitFigure = this.owner.trait as TraitFigure;
195 SourceChara.Row row = EClass.sources.charas.map[this.owner.c_idRefCard];
196 renderData = row.renderData;
197 pref = row.pref;
198 if (row._tiles.Length == 0 || this.data.pass == null)
199 {
200 renderData = this.owner.sourceCard.renderData;
201 pref = this.owner.sourceCard.pref;
202 }
203 else
204 {
205 p.tile = (float)(row._tiles[this.owner.refVal % row._tiles.Length] * ((this.owner.dir % 2 == 0) ? 1 : -1));
206 p.matColor = (float)traitFigure.GetMatColor();
207 drawShadow = traitFigure.ShowShadow;
208 pref = row.pref;
209 }
210 }
211 else
212 {
213 renderData = this.owner.sourceCard.renderData;
214 }
215 }
216 if (this.replacer != null)
217 {
218 renderData = this.replacer.data;
219 pref = this.replacer.pref;
220 SubPassData.Current = SubPassData.Default;
221 }
222 int shadow = pref.shadow;
223 bool flag2 = this.isChara && this.owner.isHidden && !EClass.pc.canSeeInvisible && (!EClass.pc.hasTelepathy || !this.owner.Chara.race.visibleWithTelepathy);
224 p.y += pref.y;
225 if (drawShadow && shadow != 1 && SubPassData.Current.shadow && (!flag2 || this.owner.IsPC))
226 {
227 bool flag3 = this.isChara ? (this.owner.dir == 1 || this.owner.dir == 2) : (this.owner.dir % 2 == 1);
228 EClass.scene.screenElin.tileMap.passShadow.AddShadow(this.position.x + (flag3 ? -1f : 1f) * renderData.offsetShadow.x, this.position.y + renderData.offsetShadow.y + (this.owner.TileType.UseMountHeight ? 0f : p.shadowFix) - RenderObject.altitudeFix * (float)this.owner.altitude, this.position.z + renderData.offsetShadow.z, ShadowData.Instance.items[shadow], pref, prefIndex, p.snow);
229 }
230 if (this.usePass)
231 {
232 if (this.owner.noSnow)
233 {
234 p.snow = false;
235 }
236 if (!flag2)
237 {
238 renderData.Draw(p);
239 }
240 }
241 else if (this.hasActor)
242 {
243 if (this.owner.isChara && this.owner.Chara.ride != null && (EClass.core.config.game.showRide == 2 || (EClass.core.config.game.showRide == 1 && !this.owner.Cell.HasRoof && !EClass._map.IsIndoor)) && !this.owner.IsDeadOrSleeping)
244 {
245 Chara ride = this.owner.Chara.ride;
246 CharaActorPCC charaActorPCC = ride.renderer.actor as CharaActorPCC;
247 CharaActorPCC charaActorPCC2 = this.actor as CharaActorPCC;
248 ride.angle = this.owner.angle;
249 if (charaActorPCC != null && charaActorPCC2 != null)
250 {
251 charaActorPCC.provider.currentDir = charaActorPCC2.provider.currentDir;
252 charaActorPCC.provider.currentFrame = charaActorPCC2.provider.currentFrame;
253 charaActorPCC.provider.SetSpriteMain();
254 charaActorPCC.RefreshSprite();
255 }
256 PCCData.RideData ride2 = (ride.renderer as CharaRenderer).pccData.ride;
257 float x = p.x;
258 float y = p.y;
259 float z = p.z;
260 Vector3 vector = new Vector3(v.x, v.y, v.z);
261 ride.renderer.Draw(p, ref vector, false);
262 int currentDir = this.actor.currentDir;
263 p.x = x + RenderObject.renderSetting.ridePos[currentDir].x + ride2.x * (float)((currentDir == 1) ? 1 : ((currentDir == 2) ? -1 : 0));
264 p.y = y + RenderObject.renderSetting.ridePos[currentDir].y + ride2.y + ride2.jump * (float)((this.actor.GetFrame() % 2 == 1) ? 1 : 0);
265 p.z = z + RenderObject.renderSetting.ridePos[currentDir].z - ride2.z;
266 }
267 if (flag2)
268 {
269 this.actor.SetActive(false);
270 }
271 else
272 {
273 this.actor.SetActive(true);
274 this.actor.OnRender(p);
275 }
276 }
277 if (this.isChara)
278 {
279 if (this.owner.Chara.parasite != null)
280 {
281 this.owner.Chara.parasite.renderer.position = this.position;
282 }
283 if (this.owner.Chara.ride != null)
284 {
285 this.owner.Chara.ride.renderer.position = this.position;
286 }
287 }
288 SubPassData.Current = SubPassData.Default;
289 }
290 if (this.listTC.Count > 0)
291 {
292 RenderObject.tempV = this.position;
293 RenderObject.tempV.y = RenderObject.tempV.y + (this.data.offset.y + this.data.size.y);
294 for (int j = this.listTC.Count - 1; j >= 0; j--)
295 {
296 this.listTC[j].OnDraw(ref RenderObject.tempV);
297 }
298 }
299 if (this.owner.trait.RenderExtra)
300 {
301 this.owner.trait.OnRenderExtra(p);
302 }
303 }
304
305 // Token: 0x06000B4D RID: 2893 RVA: 0x00046AF0 File Offset: 0x00044CF0
306 public virtual void UpdatePosition(ref Vector3 destPos, RenderParam p)
307 {
308 }
309
310 // Token: 0x06000B4E RID: 2894 RVA: 0x00046AF2 File Offset: 0x00044CF2
311 public virtual void DrawHeld()
312 {
313 }
314
315 // Token: 0x06000B4F RID: 2895 RVA: 0x00046AF4 File Offset: 0x00044CF4
316 public void RefreshSprite()
317 {
318 if (this.hasActor)
319 {
320 this.actor.RefreshSprite();
321 }
322 }
323
324 // Token: 0x06000B50 RID: 2896 RVA: 0x00046B0C File Offset: 0x00044D0C
325 public override void OnEnterScreen()
326 {
327 if (this.isSynced)
328 {
329 string str = "renderer alraedy synced:";
330 Card card = this.owner;
331 Debug.LogError(str + ((card != null) ? card.ToString() : null));
332 }
333 this.isSynced = true;
334 if (!this.usePass)
335 {
336 if (this.hasActor)
337 {
338 if (!this.data.persistActor)
339 {
340 string str2 = "renderer alraedy have actor:";
341 Card card2 = this.owner;
342 Debug.LogError(str2 + ((card2 != null) ? card2.ToString() : null));
343 }
344 }
345 else
346 {
347 this.actor = this.data.CreateActor();
348 if (this.actor == null)
349 {
350 if (this.owner.sourceCard.idActor.IsEmpty())
351 {
352 this.actor = PoolManager.Spawn<CardActor>(Resources.Load<CardActor>("Scene/Render/Actor/" + (this.owner.isChara ? "CharaActor" : "ThingActor")), null);
353 }
354 else
355 {
356 this.actor = PoolManager.Spawn<CardActor>(Resources.Load<CardActor>("Scene/Render/Actor/" + this.owner.sourceCard.idActor[0]), null);
357 }
358 }
359 this.hasActor = true;
360 }
361 this.actor.SetOwner(this.owner);
362 }
363 this.RefreshStateIcon();
364 this.RefreshExtra();
365 if (this.owner.isCensored)
366 {
367 this.SetCensored(true);
368 }
369 this.owner.trait.OnEnterScreen();
370 }
371
372 // Token: 0x06000B51 RID: 2897 RVA: 0x00046C74 File Offset: 0x00044E74
373 public void AddExtra(string id)
374 {
375 if (this.GetTC(id) == null)
376 {
377 TC tc = this.AddTC<TC>(PoolManager.Spawn<TC>("tcExtra_" + id, "Scene/Render/Actor/Component/Extra/" + id, null));
378 if (tc.isUI)
379 {
380 tc.transform.SetParent(EClass.ui.rectDynamic, false);
381 }
382 tc.name = id;
383 }
384 }
385
386 // Token: 0x06000B52 RID: 2898 RVA: 0x00046CD8 File Offset: 0x00044ED8
387 public void RefreshExtra()
388 {
389 string idExtra = this.owner.sourceCard.idExtra;
390 if (!idExtra.IsEmpty())
391 {
392 this.AddExtra(idExtra);
393 }
394 if (this.isChara && this.owner.rarity >= Rarity.Legendary && this.owner.rarity != Rarity.Artifact && !this.owner.Chara.IsHomeMember())
395 {
396 if (this.owner.c_bossType == BossType.Evolved)
397 {
398 this.AddExtra("c_unique_evolved");
399 return;
400 }
401 this.AddExtra("c_unique");
402 }
403 }
404
405 // Token: 0x06000B53 RID: 2899 RVA: 0x00046D60 File Offset: 0x00044F60
406 public void RemoveExtra(string id)
407 {
408 TC tc = this.GetTC(id);
409 if (tc != null)
410 {
411 this.RemoveTC(tc);
412 }
413 }
414
415 // Token: 0x06000B54 RID: 2900 RVA: 0x00046D88 File Offset: 0x00044F88
416 public override void OnLeaveScreen()
417 {
418 if (!this.isSynced)
419 {
420 string str = "renderer alraedy not synced:";
421 Card card = this.owner;
422 Debug.LogWarning(str + ((card != null) ? card.ToString() : null));
423 }
424 this.isSynced = false;
425 if (this.hasActor && (!this.owner.ExistsOnMap || !this.data.persistActor))
426 {
427 this.KillActor();
428 }
429 for (int i = this.listTC.Count - 1; i >= 0; i--)
430 {
431 this.RemoveTC(i);
432 }
433 if (this.hasText)
434 {
435 this.DespawnSimpleText();
436 }
437 if (this.orbit)
438 {
439 PoolManager.Despawn(this.orbit);
440 this.orbit = null;
441 }
442 }
443
444 // Token: 0x06000B55 RID: 2901 RVA: 0x00046E39 File Offset: 0x00045039
445 public void KillActor()
446 {
447 this.actor.Kill();
448 this.hasActor = false;
449 this.actor = null;
450 }
451
452 // Token: 0x06000B56 RID: 2902 RVA: 0x00046E54 File Offset: 0x00045054
453 public void PlayAnime(AnimeID id, bool force)
454 {
455 this.PlayAnime(id, default(Vector3), force);
456 }
457
458 // Token: 0x06000B57 RID: 2903 RVA: 0x00046E74 File Offset: 0x00045074
459 public void PlayAnime(AnimeID id, Card dest)
460 {
461 this.PlayAnime(id, (dest.renderer.position - this.position).normalized, false);
462 }
463
464 // Token: 0x06000B58 RID: 2904 RVA: 0x00046EA8 File Offset: 0x000450A8
465 public unsafe void PlayAnime(AnimeID id, Point dest)
466 {
467 this.PlayAnime(id, (*dest.PositionAuto() - this.position).normalized, false);
468 }
469
470 // Token: 0x06000B59 RID: 2905 RVA: 0x00046EDC File Offset: 0x000450DC
471 public void PlayAnime(AnimeID id, Vector3 dest = default(Vector3), bool force = false)
472 {
473 if (!force && this.owner.parent is Zone && (!this.owner.pos.IsValid || !this.owner.pos.IsSync))
474 {
475 return;
476 }
477 TransAnimeData transAnimeData = ResourceCache.Load<TransAnimeData>("Scene/Render/Anime/" + id.ToString());
478 if (transAnimeData == null)
479 {
480 this.anime = null;
481 return;
482 }
483 this.anime = new TransAnime
484 {
485 data = transAnimeData,
486 renderer = this
487 }.Init();
488 if (id == AnimeID.Attack || id - AnimeID.Attack_Place <= 1)
489 {
490 this.anime.dest = dest;
491 }
492 }
493
494 // Token: 0x06000B5A RID: 2906 RVA: 0x00046F86 File Offset: 0x00045186
495 public virtual void KillAnime()
496 {
497 this.anime = null;
498 }
499
500 // Token: 0x06000B5B RID: 2907 RVA: 0x00046F8F File Offset: 0x0004518F
501 public virtual void IdleFrame()
502 {
503 if (this.hasActor)
504 {
505 this.actor.IdleFrame();
506 }
507 }
508
509 // Token: 0x06000B5C RID: 2908 RVA: 0x00046FA4 File Offset: 0x000451A4
510 public virtual void NextFrame()
511 {
512 if (this.hasActor)
513 {
514 this.actor.NextFrame();
515 }
516 }
517
518 // Token: 0x06000B5D RID: 2909 RVA: 0x00046FB9 File Offset: 0x000451B9
519 public virtual void NextDir()
520 {
521 if (this.hasActor)
522 {
523 this.actor.NextDir();
524 }
525 }
526
527 // Token: 0x06000B5E RID: 2910 RVA: 0x00046FCE File Offset: 0x000451CE
528 public T AddTC<T>(TC tc) where T : TC
529 {
530 this.listTC.Add(tc);
531 tc.SetOwner(this);
532 return tc as T;
533 }
534
535 // Token: 0x06000B5F RID: 2911 RVA: 0x00046FF0 File Offset: 0x000451F0
536 public T GetTC<T>() where T : TC
537 {
538 if (this.listTC.Count == 0)
539 {
540 return default(T);
541 }
542 for (int i = this.listTC.Count - 1; i >= 0; i--)
543 {
544 if (this.listTC[i] is T)
545 {
546 return this.listTC[i] as T;
547 }
548 }
549 return default(T);
550 }
551
552 // Token: 0x06000B60 RID: 2912 RVA: 0x00047060 File Offset: 0x00045260
553 public TC GetTC(string id)
554 {
555 if (this.listTC.Count == 0)
556 {
557 return null;
558 }
559 for (int i = this.listTC.Count - 1; i >= 0; i--)
560 {
561 if (this.listTC[i].name == id)
562 {
563 return this.listTC[i];
564 }
565 }
566 return null;
567 }
568
569 // Token: 0x06000B61 RID: 2913 RVA: 0x000470BB File Offset: 0x000452BB
570 public T GetOrCreateTC<T>(Func<T> func) where T : TC
571 {
572 T result;
573 if ((result = this.GetTC<T>()) == null)
574 {
575 result = this.AddTC<T>(func());
576 }
577 return result;
578 }
579
580 // Token: 0x06000B62 RID: 2914 RVA: 0x000470E0 File Offset: 0x000452E0
581 public void RemoveTC<T>() where T : TC
582 {
583 if (this.listTC.Count == 0)
584 {
585 return;
586 }
587 for (int i = this.listTC.Count - 1; i >= 0; i--)
588 {
589 if (this.listTC[i] is T)
590 {
591 this.listTC[i].Kill();
592 this.listTC.RemoveAt(i);
593 return;
594 }
595 }
596 }
597
598 // Token: 0x06000B63 RID: 2915 RVA: 0x00047144 File Offset: 0x00045344
599 public void RemoveTC(TC tc)
600 {
601 this.RemoveTC(this.listTC.IndexOf(tc));
602 }
603
604 // Token: 0x06000B64 RID: 2916 RVA: 0x00047158 File Offset: 0x00045358
605 public void RemoveTC(int index)
606 {
607 if (index == -1)
608 {
609 return;
610 }
611 this.listTC[index].Kill();
612 this.listTC.RemoveAt(index);
613 }
614
615 // Token: 0x06000B65 RID: 2917 RVA: 0x0004717C File Offset: 0x0004537C
616 public void TrySpawnOrbit()
617 {
618 if (this.owner.isChara)
619 {
620 string text = this.owner.IsPC ? "tcOrbitPC" : "tcOrbitChara";
621 this.orbit = PoolManager.Spawn<TCOrbitChara>(text, "Scene/Render/Actor/Component/" + text, null);
622 this.orbit.SetOwner(this);
623 return;
624 }
625 if (this.owner.trait.ShowOrbit)
626 {
627 string text2 = "tcOrbitThing";
628 this.orbit = PoolManager.Spawn<TCOrbitThing>(text2, "Scene/Render/Actor/Component/" + text2, null);
629 this.orbit.SetOwner(this);
630 }
631 }
632
633 // Token: 0x06000B66 RID: 2918 RVA: 0x00047214 File Offset: 0x00045414
634 public bool IsTalking()
635 {
636 TCText tc = this.GetTC<TCText>();
637 return tc && tc.pop.items.Count > 0;
638 }
639
640 // Token: 0x06000B67 RID: 2919 RVA: 0x00047248 File Offset: 0x00045448
641 public TCSimpleText SpawnSimpleText()
642 {
643 if (!this.hasText)
644 {
645 this.hasText = true;
646 this.simpleText = PoolManager.Spawn<TCSimpleText>(EClass.core.refs.tcs.simpleText, EClass.screen);
647 }
648 RenderObject.tempV.x = this.position.x + TC._setting.simpleTextPos.x;
649 RenderObject.tempV.y = this.position.y + TC._setting.simpleTextPos.y;
650 RenderObject.tempV.z = this.position.z + TC._setting.simpleTextPos.z;
651 this.simpleText.transform.position = RenderObject.tempV;
652 return this.simpleText;
653 }
654
655 // Token: 0x06000B68 RID: 2920 RVA: 0x00047312 File Offset: 0x00045512
656 public void DespawnSimpleText()
657 {
658 if (!this.hasText)
659 {
660 return;
661 }
662 PoolManager.Despawn(this.simpleText);
663 this.hasText = false;
664 }
665
666 // Token: 0x06000B69 RID: 2921 RVA: 0x0004732F File Offset: 0x0004552F
667 public void SetCensored(bool enable)
668 {
669 if (!this.isSynced)
670 {
671 return;
672 }
673 if (enable)
674 {
675 this.GetOrCreateTC<TCCensored>(() => PoolManager.Spawn<TCCensored>(EClass.core.refs.tcs.censored, null));
676 return;
677 }
678 this.RemoveTC<TCCensored>();
679 }
680
681 // Token: 0x06000B6A RID: 2922 RVA: 0x0004736A File Offset: 0x0004556A
682 public virtual void RefreshStateIcon()
683 {
684 }
685
686 // Token: 0x06000B6B RID: 2923 RVA: 0x0004736C File Offset: 0x0004556C
687 public void Say(string text, Color c = default(Color), float duration = 0f)
688 {
689 (this.GetTC<TCText>() ?? this.AddTC<TCText>(PoolManager.Spawn<TCText>(EClass.core.refs.tcs.text, EClass.ui.rectDynamic))).Say(text, duration);
690 }
691
692 // Token: 0x06000B6C RID: 2924 RVA: 0x000473A8 File Offset: 0x000455A8
693 public void ShowEmo(Emo emo, float duration = 0f)
694 {
695 if (!this.isSynced)
696 {
697 return;
698 }
699 (this.GetTC<TCText>() ?? this.AddTC<TCText>(PoolManager.Spawn<TCText>(EClass.core.refs.tcs.text, EClass.ui.rectDynamic))).ShowEmo(emo, duration);
700 }
701
702 // Token: 0x06000B6D RID: 2925 RVA: 0x000473F8 File Offset: 0x000455F8
703 public virtual void SetFirst(bool first, Vector3 pos)
704 {
705 }
706
707 // Token: 0x06000B6E RID: 2926 RVA: 0x000473FA File Offset: 0x000455FA
708 public virtual void SetFirst(bool first)
709 {
710 }
711
712 // Token: 0x06000B6F RID: 2927 RVA: 0x000473FC File Offset: 0x000455FC
713 public virtual void Refresh()
714 {
715 }
716
717 // Token: 0x06000B71 RID: 2929 RVA: 0x00047414 File Offset: 0x00045614
718 [CompilerGenerated]
719 private bool <Draw>g__CanBeHallucinated|18_0()
720 {
721 if (!this.usePass || !this.owner.ExistsOnMap || !this.owner.trait.CanBeHallucinated)
722 {
723 return false;
724 }
725 if (this.owner.isThing)
726 {
727 if (this.owner.altitude != 0 || this.owner.TileType.UseMountHeight || this.owner.pos.LastThing != this.owner)
728 {
729 return false;
730 }
731 if (this.listTC.Count > 0)
732 {
733 return false;
734 }
735 }
736 return true;
737 }
738
739 // Token: 0x04000A6F RID: 2671
740 public TCOrbit orbit;
741
742 // Token: 0x04000A70 RID: 2672
743 public Card owner;
744
745 // Token: 0x04000A71 RID: 2673
746 public CardActor actor;
747
748 // Token: 0x04000A72 RID: 2674
749 public bool hasActor;
750
751 // Token: 0x04000A73 RID: 2675
752 public bool hasText;
753
754 // Token: 0x04000A74 RID: 2676
755 public bool isChara;
756
757 // Token: 0x04000A75 RID: 2677
758 public bool skip;
759
760 // Token: 0x04000A76 RID: 2678
761 public Vector3 position;
762
763 // Token: 0x04000A77 RID: 2679
764 public TransAnime anime;
765
766 // Token: 0x04000A78 RID: 2680
767 public List<TC> listTC = new List<TC>();
768
769 // Token: 0x04000A79 RID: 2681
770 public TCSimpleText simpleText;
771
772 // Token: 0x04000A7A RID: 2682
773 public RendererReplacer replacer;
774}
Definition Card.cs:13
Definition Chara.cs:12
Definition Point.cs:11
Definition TC.cs:6
Definition Zone.cs:14