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();
113 public virtual bool UseElements => base.source.elements.Length != 0;
117 public virtual int P2 => 0;
188 return g.Evaluate((base.source.phase.LastItem() == 0) ? 0f : ((
float)
phase / (
float)base.source.phase.LastItem()));
202 if (base.source.elements.Length != 0)
204 for (
int i = 0; i < base.source.elements.Length; i += 2)
219 string text = base.source.elements[i];
224 else if (text ==
"ele")
239 if (base.source.nullify.Length == 0)
254 if (base.source.nullify.Length == 0)
258 string[] nullify = base.source.nullify;
259 foreach (
string text
in nullify)
261 if (c.source.alias == text)
286 if (!base.source.effect[0].IsEmpty())
290 owner.
PlaySound((base.source.effect.Length >= 2) ? base.source.effect[1] : base.source.effect[0]);
296 if (base.source.effect.Length >= 3)
298 if (!base.source.effect[2].IsEmpty())
302 owner.
PlaySound((base.source.effect.Length >= 4) ? base.source.effect[3] : base.source.effect[2]);
324 if (base.source.strPhase.Length == 0)
328 return base.source.strPhase[
GetPhase()] ==
"#";
333 return base.source.phase[Mathf.Clamp(
value, 0, 99) / 10];
338 bool flag = (base.source.invert ? (!inc) : inc);
339 string[] array = (inc ? base.source.GetText(
"textPhase") : base.source.GetText(
"textPhase2")).Split(Environment.NewLine.ToCharArray());
340 if (array.Length >
phase && !array[
phase].IsEmpty())
346 else if (!base.source.invert && flag)
350 else if (base.source.invert && !flag)
361 string[] textArray = base.source.GetTextArray(
"strPhase");
362 if (textArray.Length == 0)
366 return textArray[
phase].IsEmpty(
"");
373 public void Mod(
int a,
bool force =
false)
402 return Mathf.Max(1, base.source.duration.Calc(p, 0,
P2));
412 if (base.source.defenseAttb.IsEmpty())
420 return c.elements.GetOrCreateElement(base.source.defenseAttb[0]);
425 List<string> list =
new List<string>();
427 if (defenseAttribute !=
null)
429 list.Add(
"hintDefenseAttb".lang(defenseAttribute.
Name.ToTitleCase()));
432 string[] nullify = base.source.nullify;
433 foreach (
string key
in nullify)
437 for (
int j = 0; j < base.source.elements.Length; j += 2)
446 list.Add(
"modValue".lang(element.
Name, ((element.
Value < 0) ?
"" :
"+") + element.
Value));
457 foreach (
string item in list)
459 n.AddText(
"_bullet".lang() +
item);
virtual void OnChangePhase(int lastPhase, int newPhase)
virtual void OnWriteNote(List< string > list)
virtual bool WillOverride
virtual bool CanStack(Condition c)
virtual void OnStartOrStack()
virtual void OnValueChanged()
virtual bool ShouldRefresh
virtual RendererReplacer GetRendererReplacer()
override string GetText()
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()
bool TryNullify(Condition c)
virtual Color GetSpriteColor()
void Mod(int a, bool force=false)
virtual void SetOwner(Chara _owner, bool onDeserialize=false)
SourceElement.Row sourceElement
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