Elin Decompiled Documentation EA 23.130 Nightly
Loading...
Searching...
No Matches
UISong.cs
Go to the documentation of this file.
1using UnityEngine;
2using UnityEngine.UI;
3
4public class UISong : EMono
5{
6 public static UISong Instance;
7
8 public Gauge gauge;
9
10 public Image bar;
11
12 public SoundSource source;
13
14 public BGMData.Part part;
15
16 public BGMData bgm;
17
18 public float ratio;
19
20 public Vector3 posFix;
21
22 private float timer;
23
24 private void Awake()
25 {
26 Instance = this;
27 }
28
29 public void SetSong(SoundSource _source, BGMData _bgm, BGMData.Part _part)
30 {
31 source = _source;
32 part = _part;
33 bgm = _bgm;
34 Vector3 position = Camera.main.WorldToScreenPoint(EMono.pc.pos.Position());
35 position += posFix * EMono.screen.Zoom;
36 position.z = 0f;
37 this.Rect().position = position;
38 }
39
40 private void Update()
41 {
42 if (source.source == null)
43 {
44 Kill();
45 return;
46 }
47 AudioSource audioSource = source.source;
48 ratio = Mathf.Clamp((audioSource.time - part.start) / (part.duration + bgm.song.fadeIn), 0f, 1f);
49 if ((EMono.pc.ai is GoalManualMove || EMono.pc.IsMoving) && ratio < 0.1f)
50 {
51 Kill();
52 }
53 else if (EMono.game == null || !EMono.core.IsGameStarted || source == null || !source.isPlaying || ratio >= 0.99f || (ratio <= 0f && !(EMono.pc.ai is AI_PlayMusic)))
54 {
55 timer += Core.delta;
56 if (timer > 0.3f)
57 {
58 Kill();
59 }
60 }
61 else
62 {
63 timer = 0f;
64 RectTransform rectTransform = bar.rectTransform;
65 rectTransform.sizeDelta = new Vector2(gauge.originalWidth * ratio, rectTransform.sizeDelta.y);
66 }
67 }
68
69 public void Kill()
70 {
71 Object.DestroyImmediate(base.gameObject);
72 }
73}
Point pos
Definition: Card.cs:55
AIAct ai
Definition: Chara.cs:192
override bool IsMoving
Definition: Chara.cs:598
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 Chara pc
Definition: EMono.cs:13
static BaseGameScreen screen
Definition: EMono.cs:29
static Game game
Definition: EMono.cs:7
Definition: Gauge.cs:7
float originalWidth
Definition: Gauge.cs:20
ref Vector3 Position(int height)
Definition: Point.cs:536
Definition: UISong.cs:5
void Kill()
Definition: UISong.cs:69
void Awake()
Definition: UISong.cs:24
BGMData bgm
Definition: UISong.cs:16
void SetSong(SoundSource _source, BGMData _bgm, BGMData.Part _part)
Definition: UISong.cs:29
Gauge gauge
Definition: UISong.cs:8
Image bar
Definition: UISong.cs:10
SoundSource source
Definition: UISong.cs:12
float timer
Definition: UISong.cs:22
Vector3 posFix
Definition: UISong.cs:20
static UISong Instance
Definition: UISong.cs:6
void Update()
Definition: UISong.cs:40
float ratio
Definition: UISong.cs:18
BGMData.Part part
Definition: UISong.cs:14