2using System.Collections.Generic;
9 public int[]
_ints =
new int[5];
69 return (
_ints[4] & 2) != 0;
81 return (
_ints[4] & 4) != 0;
91 public virtual string Name => base.source.GetText();
99 public virtual bool HasDuration => base.source.duration !=
"-1";
113 public virtual bool UseElements => base.source.elements.Length != 0;
117 public virtual int P2 => 0;
210 return g.Evaluate((base.source.phase.LastItem() == 0) ? 0f : ((
float)
phase / (
float)base.source.phase.LastItem()));
221 if (base.source.elements.Length != 0)
223 for (
int i = 0; i < base.source.elements.Length; i += 2)
246 string text = base.source.elements[i];
251 else if (text ==
"ele")
281 if (base.source.nullify.Length == 0)
285 string[] nullify = base.source.nullify;
286 foreach (
string text
in nullify)
288 if (c.source.alias == text)
317 if (!base.source.effect[0].IsEmpty())
321 owner.
PlaySound((base.source.effect.Length >= 2) ? base.source.effect[1] : base.source.effect[0]);
327 if (base.source.effect.Length >= 3)
329 if (!base.source.effect[2].IsEmpty())
333 owner.
PlaySound((base.source.effect.Length >= 4) ? base.source.effect[3] : base.source.effect[2]);
355 if (base.source.strPhase.Length == 0)
359 return base.source.strPhase[
GetPhase()] ==
"#";
364 return base.source.phase[Mathf.Clamp(
value, 0, 99) / 10];
369 bool flag = (base.source.invert ? (!inc) : inc);
370 string[] array = (inc ? base.source.GetText(
"textPhase") : base.source.GetText(
"textPhase2")).Split(Environment.NewLine.ToCharArray());
371 if (array.Length >
phase && !array[
phase].IsEmpty())
377 else if (!base.source.invert && flag)
381 else if (base.source.invert && !flag)
392 string[] textArray = base.source.GetTextArray(
"strPhase");
393 if (textArray.Length == 0)
397 return textArray[
phase].IsEmpty(
"");
404 public void Mod(
int a,
bool force =
false)
433 return Mathf.Min(Mathf.Max(1, base.source.duration.Calc(p, 0,
P2)), (
MaxDuration == 0) ?
int.MaxValue :
MaxDuration);
443 if (base.source.defenseAttb.IsEmpty())
451 return c.elements.GetOrCreateElement(base.source.defenseAttb[0]);
456 List<string> list =
new List<string>();
458 if (defenseAttribute !=
null)
460 list.Add(
"hintDefenseAttb".lang(defenseAttribute.
Name.ToTitleCase()));
463 string[] nullify = base.source.nullify;
464 foreach (
string key
in nullify)
468 for (
int j = 0; j < base.source.elements.Length; j += 2)
473 list.Add(e.
Name.TagColorGoodBad(() => e.
Value >= 0));
481 list.Add(
"modValue".lang(e.
Name, ((e.
Value < 0) ?
"" :
"+") + e.
Value + (e.
source.tag.Contains(
"ratio") ?
"%" :
"")).TagColorGoodBad(() => e.
Value >= 0));
492 foreach (
string item in list)
494 n.AddText(
"_bullet".lang() +
item);
virtual void OnChangePhase(int lastPhase, int newPhase)
virtual ElementContainer GetElementContainer()
virtual void OnWriteNote(List< string > list)
virtual bool IsOverrideConditionMet(Condition c, int turn)
virtual bool CanStack(Condition c)
virtual void OnStartOrStack()
virtual void OnValueChanged()
virtual bool ShouldRefresh
virtual RendererReplacer GetRendererReplacer()
override string GetText()
virtual bool ShouldTryNullify
virtual bool PreventRegen
virtual void PlayEffect()
virtual int EvaluatePower(int p)
virtual bool CanManualRemove
virtual int GainResistFactor
virtual BaseNotification CreateNotification()
virtual bool TryMove(Point p)
override void _WriteNote(UINote n, bool asChild=false)
virtual string RefString1
SourceElement.Row GetElementSource(int i)
override Color GetColor(Gradient g)
virtual bool AllowMultipleInstance
Element GetDefenseAttribute(Chara c=null)
virtual int EvaluateTurn(int p)
override string GetPhaseStr()
virtual void OnHit(Card attacker, AttackSource source)
virtual Color GetSpriteColor()
void Mod(int a, bool force=false)
virtual void SetOwner(Chara _owner, bool onDeserialize=false)
SourceElement.Row sourceElement
virtual bool TryNullify(Condition c)
virtual bool ShouldOverride(Condition c)
virtual void PlayEndEffect()
ElementContainer elements
void SetRefVal(int a, int b)
override string ToString()
virtual void OnBeforeStart()
virtual ConditionType Type
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Effect PlayEffect(string id, bool useRenderPos=true, float range=0f, Vector3 fix=default(Vector3))
void Say(string lang, string ref1=null, string ref2=null)
List< Condition > conditions
static SourceManager sources
static GameSetting setting
Element SetBase(string alias, int v, int potential=0)
static Element Create(int id, int v=0)
UD_String_ElementRef elements