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();
111 public virtual bool UseElements => base.source.elements.Length != 0;
115 public virtual int P2 => 0;
186 return g.Evaluate((base.source.phase.LastItem() == 0) ? 0f : ((
float)
phase / (
float)base.source.phase.LastItem()));
200 if (base.source.elements.Length != 0)
202 for (
int i = 0; i < base.source.elements.Length; i += 2)
217 string text = base.source.elements[i];
222 else if (text ==
"ele")
237 if (base.source.nullify.Length == 0)
252 if (base.source.nullify.Length == 0)
256 string[] nullify = base.source.nullify;
257 foreach (
string text
in nullify)
259 if (c.source.alias == text)
284 if (!base.source.effect[0].IsEmpty())
288 owner.
PlaySound((base.source.effect.Length >= 2) ? base.source.effect[1] : base.source.effect[0]);
294 if (base.source.effect.Length >= 3)
296 if (!base.source.effect[2].IsEmpty())
300 owner.
PlaySound((base.source.effect.Length >= 4) ? base.source.effect[3] : base.source.effect[2]);
322 if (base.source.strPhase.Length == 0)
326 return base.source.strPhase[
GetPhase()] ==
"#";
331 return base.source.phase[Mathf.Clamp(
value, 0, 99) / 10];
336 bool flag = (base.source.invert ? (!inc) : inc);
337 string[] array = (inc ? base.source.GetText(
"textPhase") : base.source.GetText(
"textPhase2")).Split(Environment.NewLine.ToCharArray());
338 if (array.Length >
phase && !array[
phase].IsEmpty())
344 else if (!base.source.invert && flag)
348 else if (base.source.invert && !flag)
359 string[] textArray = base.source.GetTextArray(
"strPhase");
360 if (textArray.Length == 0)
364 return textArray[
phase].IsEmpty(
"");
371 public void Mod(
int a,
bool force =
false)
400 return Mathf.Max(1, base.source.duration.Calc(p, 0,
P2));
410 if (base.source.defenseAttb.IsEmpty())
418 return c.elements.GetOrCreateElement(base.source.defenseAttb[0]);
423 List<string> list =
new List<string>();
425 if (defenseAttribute !=
null)
427 list.Add(
"hintDefenseAttb".lang(defenseAttribute.
Name.ToTitleCase()));
430 string[] nullify = base.source.nullify;
431 foreach (
string key
in nullify)
435 for (
int j = 0; j < base.source.elements.Length; j += 2)
444 list.Add(
"modValue".lang(element.
Name, ((element.
Value < 0) ?
"" :
"+") + element.
Value));
455 foreach (
string item in list)
457 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