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 {
get;
set; }
211 return g.Evaluate((base.source.phase.LastItem() == 0) ? 0f : ((
float)
phase / (
float)base.source.phase.LastItem()));
237 if (base.source.elements.Length != 0)
239 for (
int i = 0; i < base.source.elements.Length; i += 2)
257 string text = base.source.elements[i];
262 else if (text ==
"ele")
292 if (base.source.nullify.Length == 0)
296 string[] nullify = base.source.nullify;
297 foreach (
string text
in nullify)
299 if (c.source.alias == text)
328 if (!base.source.effect[0].IsEmpty())
332 owner.
PlaySound((base.source.effect.Length >= 2) ? base.source.effect[1] : base.source.effect[0]);
338 if (base.source.effect.Length >= 3)
340 if (!base.source.effect[2].IsEmpty())
344 owner.
PlaySound((base.source.effect.Length >= 4) ? base.source.effect[3] : base.source.effect[2]);
366 if (base.source.strPhase.Length == 0)
370 return base.source.strPhase[
GetPhase()] ==
"#";
375 return base.source.phase[Mathf.Clamp(
value, 0, 99) / 10];
380 bool flag = (base.source.invert ? (!inc) : inc);
381 string[] array = (inc ? base.source.GetText(
"textPhase") : base.source.GetText(
"textPhase2")).Split(Environment.NewLine.ToCharArray());
382 if (array.Length >
phase && !array[
phase].IsEmpty())
388 else if (!base.source.invert && flag)
392 else if (base.source.invert && !flag)
403 string[] textArray = base.source.GetTextArray(
"strPhase");
404 if (textArray.Length == 0)
408 return textArray[
phase].IsEmpty(
"");
415 public void Mod(
int a,
bool force =
false)
444 return Mathf.Min(Mathf.Max(1, base.source.duration.Calc(p, 0,
P2)), (
MaxDuration == 0) ?
int.MaxValue :
MaxDuration);
454 if (base.source.defenseAttb.IsEmpty())
462 return c.elements.GetOrCreateElement(base.source.defenseAttb[0]);
467 List<string> list =
new List<string>();
469 if (defenseAttribute !=
null)
471 list.Add(
"hintDefenseAttb".lang(defenseAttribute.
Name.ToTitleCase()));
474 string[] nullify = base.source.nullify;
475 foreach (
string key
in nullify)
479 for (
int j = 0; j < base.source.elements.Length; j += 2)
484 list.Add(e.
Name.TagColorGoodBad(() => e.
Value >= 0));
492 list.Add(
"modValue".lang(e.
Name, ((e.
Value < 0) ?
"" :
"+") + e.
Value + (e.
source.tag.Contains(
"ratio") ?
"%" :
"")).TagColorGoodBad(() => e.
Value >= 0));
503 foreach (
string item in list)
505 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()
void SetValue(int a, int _p2=0)
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