10 public override bool ShowPotential
20 public override bool UsePotential
30 public override bool ShowRelativeAttribute
39 public virtual CursorInfo GetCursorIcon(
Card c)
41 return this.CursorIcon;
46 public virtual CursorInfo CursorIcon
50 return CursorSystem.Action;
61 public override Sprite GetSprite()
63 return base.source.GetSprite();
68 public virtual string ID
72 return base.source.alias;
78 public virtual bool IsAct
88 public virtual bool WillEndTurn
98 public virtual bool CloseLayers
108 public virtual int LeftHand
118 public virtual int RightHand
128 public virtual int ElementPowerMod
132 return base.source.eleP;
138 public virtual bool ShowMapHighlight
148 public virtual bool ShowMapHighlightBlock
157 public virtual bool ShowMouseHint(
Card c)
164 public virtual bool PickHeldOnStart
174 public virtual bool DropHeldOnStart
184 public virtual bool CanPressRepeat
194 public virtual bool CanAutofire
204 public virtual bool ResetAxis
214 public virtual bool RequireTool
224 public virtual bool IsHostileAct
234 public virtual bool HideRightInfo
244 public virtual bool HaveLongPressAction
254 public virtual float Radius
258 return base.source.radius;
263 public virtual bool IsValidTC(
Card c)
265 return c.isChara || c.trait.CanBeAttacked;
269 public virtual string GetHintText(
string str =
"")
271 return this.GetText(str);
275 public virtual string GetText(
string str =
"")
277 if (base.source !=
null)
279 this.id = base.source.id;
283 return Lang.ParseRaw(base.source.GetName(), str,
null,
null,
null,
null);
285 if (!Lang.Has(
this.ToString()))
287 string[] array =
new string[5];
288 array[0] = this.ToString();
292 array[num] = ((source !=
null) ? source.ToString() :
null);
294 array[4] = this.
id.ToString();
295 return string.Concat(array);
297 return Lang.Get(this.ToString());
301 public virtual string GetTextSmall(
Card c)
307 return c.Name + c.GetExtraName();
312 public virtual int PerformDistance
322 public virtual int MaxRadius
336 if (!base.source.target.IsEmpty())
338 string target = base.source.target;
339 uint num = <PrivateImplementationDetails>.ComputeStringHash(target);
340 if (num <= 1049176909U)
342 if (num <= 850565431U)
344 if (num != 333403860U)
346 if (num == 850565431U)
348 if (target ==
"Party")
354 else if (target ==
"Chara")
359 else if (num != 1004962635U)
361 if (num == 1049176909U)
363 if (target ==
"Select")
369 else if (target ==
"Enemy")
374 else if (num <= 2648502281U)
376 if (num != 1480824651U)
378 if (num == 2648502281U)
380 if (target ==
"SelfParty")
386 else if (target ==
"Neighbor")
391 else if (num != 3803529630U)
393 if (num == 3834216855U)
395 if (target ==
"Self")
401 else if (target ==
"Ground")
412 public virtual bool LocalAct
422 public virtual bool CanRapidFire
432 public virtual float RapidDelay
442 public virtual bool ShowAuto
451 public virtual Color GetActPlanColor()
455 return EClass.Colors.colorAct;
457 return EClass.Colors.colorHostileAct;
462 public virtual bool IsCrime
471 public virtual bool Perform()
474 if ((
id == 8230 ||
id == 8232) &&
Act.TC.isThing)
476 int power =
Act.CC.elements.GetOrCreateElement(base.source.id).GetPower(
Act.CC) * Act.powerMod / 100;
477 ActEffect.Proc(base.source.proc[0].ToEnum(
true), power, BlessedState.Normal,
Act.CC,
Act.TC,
default(
ActRef));
480 if (base.source.proc.Length != 0)
482 string text = base.source.aliasRef.IsEmpty(
Act.CC.MainElement.source.alias);
483 string a = base.source.proc[0];
484 if (a ==
"LulwyTrick" || a ==
"BuffStats")
486 text = base.source.proc[1];
488 else if (text ==
"mold")
490 text =
Act.CC.MainElement.source.alias;
492 if (this.
TargetType.Range == TargetRange.Self && !
Act.forcePt)
497 int power2 =
Act.CC.elements.GetOrCreateElement(base.source.id).GetPower(
Act.CC) * Act.powerMod / 100;
498 ActEffect.ProcAt(base.source.proc[0].ToEnum(
true), power2, BlessedState.Normal,
Act.CC,
Act.TC,
Act.TP, base.source.tag.Contains(
"neg"),
new ActRef
500 n1 = base.source.proc.TryGet(1, true),
509 public virtual bool CanPerform()
517 return this.CanPerform(_cc, _tc, _tp) && this.Perform();
521 public bool CanPerform(
Chara _cc,
Card _tc =
null,
Point _tp =
null)
523 Act.<>c__DisplayClass82_0 CS$<>8__locals1 =
new Act.<>c__DisplayClass82_0();
524 CS$<>8__locals1.<>4__this =
this;
532 point = (((tc !=
null) ? tc.pos :
null) ??
Act.CC.pos);
536 if (
Act.forcePt && CS$<>8__locals1.tt.Range == TargetRange.Self && !
Act.CC.IsPC)
540 if (this.LocalAct &&
EClass._zone.IsRegion)
544 if (CS$<>8__locals1.tt.Range == TargetRange.Self)
547 return this.CanPerform();
549 if (
Act.CC.IsPC &&
Act.TP.Equals(
EClass.pc.pos) &&
EClass.core.config.game.shiftToUseNegativeAbilityOnSelf && base.source.tag.Contains(
"neg") && !EInput.isShiftDown)
553 if (!(
this is
ActMelee) && CS$<>8__locals1.tt.Range == TargetRange.Chara && (
Act.TC ==
null || !
Act.CC.CanSee(
Act.TC)))
557 CS$<>8__locals1.distCheck = CS$<>8__locals1.<CanPerform>g__DistCheck|0(
Act.CC.pos,
Act.TP);
558 if (!CS$<>8__locals1.distCheck && (
Act.CC.IsMultisize || (
Act.TC !=
null &&
Act.TC.IsMultisize)))
560 if (
Act.CC.IsMultisize)
562 Act.CC.ForeachPoint(delegate(
Point p,
bool main)
564 base.<CanPerform>g__DistCheckMulti|1(p,
Act.TC);
569 CS$<>8__locals1.<CanPerform>g__DistCheckMulti|1(
Act.CC.pos,
Act.TC);
572 return CS$<>8__locals1.distCheck && this.CanPerform();
576 public static void SetReference(
Chara _cc,
Card _tc =
null,
Point _tp =
null)
580 Act.TP.Set(_tp ??
Act.TC.pos);
584 public virtual bool IsToolValid()
586 return Act.CC == EClass.pc && Act.TOOL !=
null && Act.TOOL.parent ==
EClass.pc;
590 public static void SetTool(
Thing t)
596 public new void SetImage(Image image)
598 image.sprite = (this.GetSprite() ??
EClass.core.refs.icons.defaultAbility);
599 if (!base.source.aliasRef.IsEmpty())
601 image.color =
EClass.setting.elements[base.source.aliasRef].colorSprite;
605 image.color = Color.white;
607 image.rectTransform.pivot =
new Vector2(0.5f, 0.5f);
608 image.SetNativeSize();
612 public virtual void OnMarkMapHighlights()
616 if (!p.HasBlock &&
this.ShouldMapHighlight(p))
618 p.cell.highlight = 8;
619 EClass.player.lastMarkedHighlights.Add(p.Copy());
625 public virtual bool ShouldMapHighlight(
Point p)
627 return base.act.TargetType.ShowMapHighlight && base.act.ShowMapHighlight && base.act.CanPerform(
EClass.pc,
null, p);
631 public static Chara CC;
640 public static Thing TOOL;
643 public static int powerMod = 100;
646 public static bool forcePt;
666 public Act.CostType type;