1using System.Collections.Generic;
278 public static readonly
int[]
IDS =
new int[136]
280 1223, 1650, 1649, 1648, 1647, 1646, 1645, 1644, 1643, 1642,
281 1641, 1640, 1636, 1635, 1634, 1651, 1633, 1631, 1630, 1629,
282 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1612,
283 1611, 1632, 1652, 1653, 1654, 1222, 1200, 1201, 1202, 1203,
284 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213,
285 1214, 1215, 1655, 1656, 1657, 1658, 1659, 1660, 1610, 1661,
286 1750, 1220, 1219, 1218, 1217, 1216, 1662, 1422, 1221, 1325,
287 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1402, 1410, 1412,
288 1413, 1414, 1415, 1416, 1417, 1418, 1411, 1401, 1400, 1355,
289 1251, 1270, 1271, 1272, 1273, 1290, 1300, 1305, 1310, 1315,
290 1320, 1248, 1330, 1335, 1340, 1345, 1350, 1419, 1250, 1420,
291 1246, 1232, 1231, 1421, 1230, 1229, 1228, 1227, 1226, 1225,
292 1224, 1247, 1233, 1249, 1235, 1245, 1244, 1243, 1236, 1242,
293 1241, 1240, 1239, 1238, 1237, 1234
298 public static List<string>
hints =
new List<string>();
300 public static string[]
featRef =
new string[5];
304 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
310 string[] array = base.source.GetText().SplitNewline();
311 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
319 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
323 return !base.IsGlobalElement;
326 public override Sprite
GetIcon(
string suffix =
"")
328 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
336 n.AddText(
"_bullet".lang() +
hint);
346 text = text +
hint.StripLastPun() +
", ";
348 return text.TrimEnd(
' ').TrimEnd(
',');
353 if (base.source.req.Length != 0)
356 if (element ==
null || element.
ValueWithoutLink < ((base.source.req.Length == 1) ? 1 : base.source.req[Mathf.Clamp(((lv == -1 &&
owner !=
null) ?
owner.
Value(
id) : lv) + 1, 1, base.source.req.Length - 1)].ToInt()))
366 if (base.source.req.Length != 0)
368 Element element =
Element.
Create(base.source.req[0], (base.source.req.Length == 1) ? 1 : base.source.req[Mathf.Clamp(((lv == -1 &&
owner !=
null) ?
owner.
Value(
id) : lv) + 1, 1, base.source.req.Length - 1)].ToInt());
383 int value = base.Value;
384 int A = Mathf.Abs(a);
385 int invert = ((a >= 0) ? 1 : (-1));
388 featRef[0] = a.ToString() ??
"";
389 featRef[1] = a.ToString() ??
"";
393 if (!
hint && a > 0 && chara !=
null)
400 featRef[0] = (a * 25).ToString() ??
"";
403 ModBase(78, -a * 10, hide:
false);
406 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
409 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
412 ModBase(60, a * 4, hide:
false);
415 ModBase(61, a * 4, hide:
false);
418 ModBase(62, a * 4, hide:
false);
445 ModBase(79, a * 5, hide:
false);
448 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
451 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
454 ModBase(150, a * 2, hide:
false);
457 ModBase(210, a * 3, hide:
false);
458 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
461 ModBase(291, a * 4, hide:
false);
464 ModBase(100, a * 3, hide:
false);
467 ModBase(306, a * 4, hide:
false);
470 ModBase(78, a * 2, hide:
false);
473 ModBase(77, a * 2, hide:
false);
476 featRef[0] = (a * 10).ToString() ??
"";
479 featRef[0] = (a * 10).ToString() ??
"";
482 ModBase(78, a * 15, hide:
false);
485 featRef[0] = (a * 20).ToString() ??
"";
486 featRef[1] = (a * 5).ToString() ??
"";
489 featRef[0] = a.ToString() ??
"";
506 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
507 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
508 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
511 ModBase(60, A * 2 * invert, hide:
false);
512 ModBase(79, A * 3 * invert, hide:
false);
515 ModBase(64, a * 50, hide:
true);
516 ModBase(401, a, hide:
false);
519 ModBase(403, a * 20, hide:
true);
522 ModBase(955, a * 5, hide:
false);
523 ModBase(953, a * 10, hide:
false);
524 ModBase(958, a * 5, hide:
false);
525 ModBase(956, a * 10, hide:
false);
526 ModBase(950, a * -5, hide:
false);
527 ModBase(960, a * -5, hide:
false);
528 ModBase(423, a, hide:
false);
531 ModBase(418, a * 100, hide:
false);
534 ModBase(956, a * 5, hide:
false);
535 ModBase(959, a * 5, hide:
false);
536 ModBase(423, a, hide:
false);
537 ModBase(424, a, hide:
false);
538 ModBase(421, a, hide:
false);
541 ModBase(954, a * 10, hide:
false);
542 ModBase(423, a, hide:
false);
543 ModBase(425, a, hide:
false);
544 ModBase(424, a, hide:
false);
545 ModBase(421, a, hide:
false);
548 ModBase(955, a * 5, hide:
false);
549 ModBase(953, a * 5, hide:
false);
552 ModBase(961, a * 5, hide:
false);
553 ModBase(953, a * 5, hide:
false);
554 ModBase(958, a * 5, hide:
false);
555 ModBase(956, a * 5, hide:
false);
556 ModBase(954, a * 5, hide:
false);
557 ModBase(957, a * 5, hide:
false);
558 ModBase(959, a * 5, hide:
false);
561 ModBase(962, a * 20, hide:
false);
564 ModBase(951, a * 15, hide:
false);
567 ModBase(952, a * -10, hide:
false);
568 ModBase(955, a * 20, hide:
false);
569 ModBase(964, a * 20, hide:
false);
572 ModBase(950, a / 40, hide:
false);
573 ModBase(952, a / 40, hide:
false);
574 ModBase(955, a / 40, hide:
false);
575 ModBase(953, a / 40, hide:
false);
576 ModBase(958, a / 40, hide:
false);
577 ModBase(956, a / 40, hide:
false);
578 ModBase(954, a / 40, hide:
false);
579 ModBase(959, a / 40, hide:
false);
580 ModBase(964, a / 40, hide:
false);
581 ModBase(961, a / 40, hide:
false);
584 ModBase(964, a * 20, hide:
false);
587 ModBase(963, a * 20, hide:
false);
590 ModBase(6020, a, hide:
false);
593 ModBase(950, a * -10, hide:
false);
594 ModBase(951, a * 5, hide:
false);
595 ModBase(961, a * 5, hide:
false);
596 ModBase(8793, a, hide:
false);
597 ModBase(6607, a, hide:
false);
600 ModBase(60, a * 15, hide:
false);
601 ModBase(79, a * 5, hide:
false);
602 ModBase(953, a * 3, hide:
false);
603 ModBase(961, a, hide:
false);
604 ModBase(960, a, hide:
false);
619 array[0] = num2.ToString() ??
"";
620 featRef[1] = (a * 2).ToString() ??
"";
624 ModBase(73, -a * 5, hide:
false);
627 ModBase(73, a * 5, hide:
false);
630 ModBase(65, a * 3, hide:
false);
633 ModBase(65, -a * 3, hide:
false);
636 ModBase(73, a * 5, hide:
false);
639 ModBase(73, -a * 5, hide:
false);
642 ModBase(72, a * 3, hide:
false);
645 ModBase(72, -a * 3, hide:
false);
648 ModBase(300, a * 4, hide:
false);
651 ModBase(300, -a * 4, hide:
false);
654 ModBase(79, a * 5, hide:
false);
657 ModBase(79, -a * 5, hide:
false);
660 ModBase(70, a * 3, hide:
false);
663 ModBase(70, -a * 3, hide:
false);
666 ModBase(77, a * 5, hide:
false);
669 ModBase(77, -a * 5, hide:
false);
672 ModBase(307, a * 4, hide:
false);
675 ModBase(307, -a * 4, hide:
false);
678 ModBase(951, a * 5, hide:
false);
679 ModBase(950, -a * 5, hide:
false);
682 ModBase(951, -a * 5, hide:
false);
683 ModBase(950, a * 5, hide:
false);
686 ModBase(952, a * 5, hide:
false);
689 ModBase(952, -a * 5, hide:
false);
692 ModBase(960, a * 5, hide:
false);
693 ModBase(956, -a * 5, hide:
false);
696 ModBase(960, -a * 5, hide:
false);
697 ModBase(956, a * 5, hide:
false);
714 ModBase(404, -a * 10, hide:
false);
717 ModBase(77, -a * (4 + num / 5), hide:
false);
720 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
727 ModBase(73, a * (5 + num / 3), hide:
false);
728 ModBase(77, -a * (5 + num / 3), hide:
false);
731 ModBase(404, a * 10, hide:
false);
732 ModBase(401, a, hide:
false);
733 ModBase(79, a * (10 + num / 5), hide:
false);
740 ModBase(65, a * (12 + num), hide:
false);
741 ModBase(77, -a * (5 + num / 5), hide:
false);
748 ModBase(64, -a * (10 + num), hide:
false);
749 ModBase(67, a * (5 + num / 2), hide:
false);
752 ModBase(71, -a * (5 + num / 3), hide:
false);
753 ModBase(72, -a * (4 + num / 4), hide:
false);
754 ModBase(74, a * (6 + num / 2), hide:
false);
755 ModBase(75, a * (2 + num / 6), hide:
false);
758 ModBase(60, -a * 15, hide:
false);
759 ModBase(70, -a * (4 + num / 3), hide:
false);
762 ModBase(61, -a * 15, hide:
false);
763 ModBase(76, -a * (4 + num / 3), hide:
false);
766 ModBase(65, a * (15 + num / 2), hide:
false);
767 ModBase(79, -a * (10 + num / 5), hide:
false);
770 ModBase(77, -a * (3 + num / 4), hide:
false);
773 ModBase(961, a * 5, hide:
false);
776 ModBase(955, a * 20, hide:
false);
781 string text = base.source.GetText(
"textExtra");
784 string text2 = text.SplitNewline().TryGet(value - 1, 99);
785 if (!text2.IsEmpty())
788 string[] array2 = text2.Split(
',');
789 foreach (
string obj
in array2)
793 if (text3.ToInt() < 0)
795 text4 = text4.Replace(
"+#1", text3);
797 text4 = text4.Replace(
"#1", text3);
813 if (value2.
source.id !=
id)
815 NoteElement(value2.
id, value2.
Value);
819 void ModAttribute(
int ele)
822 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
825 void ModBase(
int ele,
int _v,
bool hide)
831 if (!hide && _v != 0)
833 NoteElement(ele, _v);
851 void NoteElement(
int ele,
int a)
856 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
858 else if (row.
tag.Contains(
"flag"))
864 string @ref = ((a < 0) ?
"" :
"+") + a;
868 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num4, 1, 5));
869 Note(
"modValueRes".lang(row.
GetName(), @ref));
873 Note(
"modValue".lang(row.
GetName(), @ref));
void UnequipAll(int idSlot)
void AddRandomBodyPart(bool msg=false)
ElementContainer faithElements
static SourceManager sources
Dictionary< int, Element > dict
Element ModPotential(int ele, int v)
Element ModBase(int ele, int v)
Element GetElement(string alias)
static Element Create(int id, int v=0)
const int featUnderground
const int featMiscreation
const int featCannibalism
const int featModelBeliever
const int featEternalYouth
const int featMelilithCurse
const int featGod_element1
const int featExecutioner
const int featHeavyCasting
const int featMagicManner
const int featManaPrecision
const int featMassSummoner
const int featFastLearner
const int featGod_trickery1
const int featCosmicHorror
const int featEarthStrength
const int featGod_healing1
const int featMeatCushion
static readonly int[] IDS
const int featGod_moonshadow1
const int featGoldenFinger
const int featGod_strife1
const int featGod_harvest1
const int featAnimalLover
const int featFairyResist
const int featGod_machine1
const int featGod_harmony1
const int featGod_oblivion1
List< string > Apply(int a, ElementContainer owner, bool hint=false)
override Sprite GetIcon(string suffix="")
static List< string > hints
override bool CanLink(ElementContainer owner)
string GetHint(ElementContainer owner)
override void WritePurchaseReq(UINote n, int lv=-1)
override bool IsPurchaseFeatReqMet(ElementContainer owner, int lv=-1)
override void OnWriteNote(UINote n, ElementContainer owner)
override bool ShowBonuses
override string GetName()
static Sprite Get(string id)
UIItem AddHeader(string text, Sprite sprite=null)
UIItem AddText(string text, FontColor color=FontColor.DontChange)