Elin Decompiled Documentation EA 23.264 Nightly
Loading...
Searching...
No Matches
ConBuffStats.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using UnityEngine;
3
4public class ConBuffStats : Condition
5{
6 public override string Name => (isDebuff ? "debuff" : "buff").lang();
7
8 public override ConditionType Type
9 {
10 get
11 {
12 if (!isDebuff)
13 {
14 return ConditionType.Buff;
15 }
16 return ConditionType.Debuff;
17 }
18 }
19
20 public bool isDebuff => base.refVal2 == 222;
21
22 public override bool AllowMultipleInstance => true;
23
24 public override bool UseElements => true;
25
26 public override bool IsOverrideConditionMet(Condition c, int turn)
27 {
28 if ((c as ConBuffStats).isDebuff == isDebuff)
29 {
30 return base.IsOverrideConditionMet(c, turn);
31 }
32 return true;
33 }
34
35 public override int EvaluateTurn(int p)
36 {
37 if (base.refVal2 == 268)
38 {
39 return 7;
40 }
41 return base.EvaluateTurn(p) * ((base.refVal == 79) ? 50 : 100) / 100;
42 }
43
44 public override bool ShouldOverride(Condition c)
45 {
46 return true;
47 }
48
49 public override int GetPhase()
50 {
51 return 0;
52 }
53
54 public override Color GetColor(SkinColorProfile c)
55 {
56 if (!isDebuff)
57 {
58 return c.textGood;
59 }
60 return c.textBad;
61 }
62
63 public override string GetPhaseStr()
64 {
65 return GetText();
66 }
67
68 public override string GetText()
69 {
70 string[] list = Lang.GetList("buff_" + EClass.sources.elements.map[base.refVal].alias);
71 if (list != null)
72 {
73 if (!isDebuff)
74 {
75 return list[0];
76 }
77 return list[1];
78 }
79 return base.GetText();
80 }
81
82 public override void PlayEffect()
83 {
85 {
86 owner.PlaySound(isDebuff ? "debuff" : "buff");
87 owner.PlayEffect(isDebuff ? "debuff" : "buff");
88 owner.Say(isDebuff ? "buffStats_curse" : "buffStats", owner, EClass.sources.elements.map[base.refVal].GetName().ToLower());
89 }
90 }
91
92 public override bool CanStack(Condition c)
93 {
94 if (c is ConBuffStats conBuffStats)
95 {
96 return conBuffStats.refVal == base.refVal;
97 }
98 return true;
99 }
100
101 public override void SetOwner(Chara _owner, bool onDeserialize = false)
102 {
103 base.SetOwner(_owner);
104 elements.SetBase(base.refVal, CalcValue() * ((!isDebuff) ? 1 : (-1)));
106 }
107
108 public int CalcValue()
109 {
110 if (base.refVal2 == 268)
111 {
112 return 100 + (int)Mathf.Sqrt(base.power) * 2;
113 }
114 if (base.refVal == 79)
115 {
116 return (int)Mathf.Max(5f, Mathf.Sqrt(base.power) * 1.5f + 20f);
117 }
118 return (int)Mathf.Max(5f, Mathf.Sqrt(base.power) * 2f - 15f);
119 }
120
121 public override void OnWriteNote(List<string> list)
122 {
123 list.Add((isDebuff ? "hintDebuffStats" : "hintBuffStats").lang(base.sourceElement.GetName(), CalcValue().ToString() ?? ""));
124 }
125}
ConditionType
Definition: ConditionType.cs:2
ElementContainer elements
override string ToString()
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:6314
Effect PlayEffect(string id, bool useRenderPos=true, float range=0f, Vector3 fix=default(Vector3))
Definition: Card.cs:6348
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6991
Definition: Chara.cs:10
override void PlayEffect()
Definition: ConBuffStats.cs:82
override int EvaluateTurn(int p)
Definition: ConBuffStats.cs:35
override bool IsOverrideConditionMet(Condition c, int turn)
Definition: ConBuffStats.cs:26
override string Name
Definition: ConBuffStats.cs:6
override bool ShouldOverride(Condition c)
Definition: ConBuffStats.cs:44
override bool UseElements
Definition: ConBuffStats.cs:24
override bool CanStack(Condition c)
Definition: ConBuffStats.cs:92
override ConditionType Type
Definition: ConBuffStats.cs:9
override string GetPhaseStr()
Definition: ConBuffStats.cs:63
override void SetOwner(Chara _owner, bool onDeserialize=false)
override int GetPhase()
Definition: ConBuffStats.cs:49
override Color GetColor(SkinColorProfile c)
Definition: ConBuffStats.cs:54
override string GetText()
Definition: ConBuffStats.cs:68
override bool AllowMultipleInstance
Definition: ConBuffStats.cs:22
override void OnWriteNote(List< string > list)
static bool ignoreEffect
Definition: Condition.cs:5
Definition: EClass.cs:6
static SourceManager sources
Definition: EClass.cs:43
void SetParent(Card c)
Element SetBase(string alias, int v, int potential=0)
Definition: Lang.cs:6
static string[] GetList(string id)
Definition: Lang.cs:114
SourceElement elements