Elin Decompiled Documentation EA 23.316 Nightly
Loading...
Searching...
No Matches
Condition.cs
Go to the documentation of this file.
1using System;
2using UnityEngine;
3
4public class Condition : BaseCondition
5{
6 public static bool ignoreEffect;
7
8 public virtual bool IsKilled => base.value <= 0;
9
10 public virtual string TextDuration
11 {
12 get
13 {
14 object obj;
15 if (!base.isPerfume)
16 {
17 obj = base.value.ToString();
18 if (obj == null)
19 {
20 return "";
21 }
22 }
23 else
24 {
25 obj = "";
26 }
27 return (string)obj;
28 }
29 }
30
32 {
33 return new NotificationCondition
34 {
35 condition = this
36 };
37 }
38
39 public static T Create<T>(int power = 100, Action<T> onCreate = null) where T : Condition
40 {
41 return (T)Create(typeof(T).Name, power, delegate(Condition c)
42 {
43 onCreate(c as T);
44 });
45 }
46
47 public static Condition Create(string alias, int power = 100, Action<Condition> onCreate = null)
48 {
49 SourceStat.Row row = EClass.sources.stats.alias.TryGetValue(alias);
50 if (row == null)
51 {
52 row = EClass.sources.stats.alias["ConWet"];
53 Debug.LogError("#source can't create condition from alias '" + alias + "'");
54 }
55 string text = row.type.IsEmpty(alias);
56 Condition condition = ClassCache.Create<Condition>(text, "Elin");
57 if (condition == null)
58 {
59 condition = new ConWet();
60 row = EClass.sources.stats.alias["ConWet"];
61 ModUtil.LogModError("source condition row '" + alias + "' has invalid type '" + text + "'", row);
62 }
63 condition.power = power;
64 condition.id = row.id;
65 condition._source = row;
66 onCreate?.Invoke(condition);
67 return condition;
68 }
69
70 public virtual void OnStacked(int p)
71 {
72 base.value += EvaluateTurn(p);
73 if (MaxDuration != 0 && base.value > MaxDuration)
74 {
75 base.value = MaxDuration;
76 }
77 SetPhase();
78 }
79
80 public Condition SetPerfume(int duration = 3)
81 {
82 base.isPerfume = true;
83 base.value = duration;
84 return this;
85 }
86
87 public override void Tick()
88 {
89 Mod(-1);
90 }
91
92 public virtual void OnCalculateFov(Fov fov, ref int radius, ref float power)
93 {
94 }
95
96 public virtual void OnCreateFov(Fov fov)
97 {
98 }
99
100 public override void OnValueChanged()
101 {
102 if (base.value <= 0)
103 {
104 Kill();
105 }
106 }
107
108 public void Kill(bool silent = false)
109 {
110 base.value = 0;
111 owner.conditions.Remove(this);
112 if (!silent && !owner.isDead && !base.source.textEnd.IsEmpty())
113 {
114 owner.Say(base.source.GetText("textEnd"), owner, RefString1);
115 }
117 if (elements != null)
118 {
120 }
121 OnRemoved();
122 if (EmoIcon != 0 && owner.emoIcon == EmoIcon)
123 {
124 owner.emoIcon = Emo2.none;
125 foreach (Condition condition in owner.conditions)
126 {
127 condition.RefreshEmoIcon();
128 }
130 }
132 if (ShouldRefresh)
133 {
134 owner.Refresh();
135 }
136 }
137}
Emo2
Definition: Emo2.cs:2
void RefreshEmoIcon()
virtual bool ShouldRefresh
virtual int MaxDuration
virtual string Name
virtual string RefString1
virtual int EvaluateTurn(int p)
virtual void OnRemoved()
void Mod(int a, bool force=false)
virtual void PlayEndEffect()
ElementContainer elements
virtual Emo2 EmoIcon
Definition: BaseStats.cs:31
TCOrbit orbit
Definition: CardRenderer.cs:7
CardRenderer renderer
Definition: Card.cs:64
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:7221
void Refresh(bool calledRecursive=false)
Definition: Chara.cs:1772
void SetDirtySpeed()
Definition: Chara.cs:1945
List< Condition > conditions
Definition: Chara.cs:215
Emo2 emoIcon
Definition: Chara.cs:108
bool isDead
Definition: Chara.cs:393
Definition: ConWet.cs:2
virtual void OnCalculateFov(Fov fov, ref int radius, ref float power)
Definition: Condition.cs:92
virtual void OnStacked(int p)
Definition: Condition.cs:70
override BaseNotification CreateNotification()
Definition: Condition.cs:31
virtual bool IsKilled
Definition: Condition.cs:8
Condition SetPerfume(int duration=3)
Definition: Condition.cs:80
void Kill(bool silent=false)
Definition: Condition.cs:108
virtual void OnCreateFov(Fov fov)
Definition: Condition.cs:96
override void Tick()
Definition: Condition.cs:87
override void OnValueChanged()
Definition: Condition.cs:100
virtual string TextDuration
Definition: Condition.cs:11
static Condition Create(string alias, int power=100, Action< Condition > onCreate=null)
Definition: Condition.cs:47
static bool ignoreEffect
Definition: Condition.cs:6
static T Create< T >(int power=100, Action< T > onCreate=null)
Definition: Condition.cs:39
Definition: EClass.cs:6
static SourceManager sources
Definition: EClass.cs:43
void SetParent(Card c)
Definition: Fov.cs:6
SourceStat stats
virtual void RefreshAll()
Definition: TCOrbit.cs:7