1using System.Collections.Generic;
276 public static readonly
int[]
IDS =
new int[135]
278 1612, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1630,
279 1620, 1629, 1414, 1610, 1422, 1421, 1420, 1419, 1418, 1417,
280 1416, 1415, 1631, 1413, 1412, 1611, 1632, 1648, 1634, 1411,
281 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653,
282 1652, 1651, 1650, 1649, 1647, 1646, 1645, 1644, 1643, 1642,
283 1641, 1640, 1636, 1635, 1633, 1410, 1234, 1408, 1230, 1231,
284 1232, 1233, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242,
285 1229, 1243, 1409, 1246, 1247, 1248, 1249, 1250, 1251, 1270,
286 1271, 1272, 1273, 1290, 1244, 1300, 1228, 1226, 1200, 1201,
287 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211,
288 1227, 1212, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221,
289 1222, 1223, 1224, 1225, 1213, 1305, 1245, 1315, 1406, 1405,
290 1404, 1403, 1402, 1401, 1400, 1407, 1355, 1345, 1310, 1340,
291 1335, 1330, 1325, 1320, 1350
296 public static List<string>
hints =
new List<string>();
298 public static string[]
featRef =
new string[5];
302 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
308 string[] array = base.source.GetText().SplitNewline();
309 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
317 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
321 return !base.IsGlobalElement;
324 public override Sprite
GetIcon(
string suffix =
"")
326 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
334 n.AddText(
"_bullet".lang() +
hint);
344 text = text +
hint.StripLastPun() +
", ";
346 return text.TrimEnd(
' ').TrimEnd(
',');
351 if (base.source.req.Length != 0)
354 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()))
364 if (base.source.req.Length != 0)
366 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());
381 int value = base.Value;
382 int A = Mathf.Abs(a);
383 int invert = ((a >= 0) ? 1 : (-1));
386 featRef[0] = a.ToString() ??
"";
387 featRef[1] = a.ToString() ??
"";
391 if (!
hint && a > 0 && chara !=
null)
398 featRef[0] = (a * 25).ToString() ??
"";
401 ModBase(78, -a * 10, hide:
false);
404 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
407 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
410 ModBase(60, a * 4, hide:
false);
413 ModBase(61, a * 4, hide:
false);
416 ModBase(62, a * 4, hide:
false);
443 ModBase(79, a * 5, hide:
false);
446 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
449 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
452 ModBase(150, a * 2, hide:
false);
455 ModBase(210, a * 3, hide:
false);
456 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
459 ModBase(291, a * 4, hide:
false);
462 ModBase(100, a * 3, hide:
false);
465 ModBase(306, a * 4, hide:
false);
468 ModBase(78, a * 2, hide:
false);
471 ModBase(77, a * 2, hide:
false);
474 featRef[0] = (a * 10).ToString() ??
"";
477 featRef[0] = (a * 10).ToString() ??
"";
480 ModBase(78, a * 15, hide:
false);
483 featRef[0] = (a * 20).ToString() ??
"";
484 featRef[1] = (a * 5).ToString() ??
"";
487 featRef[0] = a.ToString() ??
"";
504 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
505 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
506 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
509 ModBase(60, A * 2 * invert, hide:
false);
510 ModBase(79, A * 3 * invert, hide:
false);
513 ModBase(64, a * 50, hide:
true);
514 ModBase(401, a, hide:
false);
517 ModBase(403, a * 20, hide:
true);
520 ModBase(955, a * 5, hide:
false);
521 ModBase(953, a * 10, hide:
false);
522 ModBase(958, a * 5, hide:
false);
523 ModBase(956, a * 10, hide:
false);
524 ModBase(950, a * -5, hide:
false);
525 ModBase(960, a * -5, hide:
false);
528 ModBase(418, a * 100, hide:
false);
531 ModBase(956, a * 5, hide:
false);
532 ModBase(959, a * 5, hide:
false);
533 ModBase(423, a, hide:
false);
534 ModBase(424, a, hide:
false);
535 ModBase(421, a, hide:
false);
538 ModBase(954, a * 10, hide:
false);
539 ModBase(423, a, hide:
false);
540 ModBase(425, a, hide:
false);
541 ModBase(424, a, hide:
false);
542 ModBase(421, a, hide:
false);
545 ModBase(955, a * 5, hide:
false);
546 ModBase(953, a * 5, hide:
false);
549 ModBase(961, a * 5, hide:
false);
550 ModBase(953, a * 5, hide:
false);
551 ModBase(958, a * 5, hide:
false);
552 ModBase(956, a * 5, hide:
false);
553 ModBase(954, a * 5, hide:
false);
554 ModBase(957, a * 5, hide:
false);
555 ModBase(959, a * 5, hide:
false);
558 ModBase(962, a * 20, hide:
false);
561 ModBase(951, a * 15, hide:
false);
564 ModBase(952, a * -10, hide:
false);
565 ModBase(955, a * 20, hide:
false);
566 ModBase(964, a * 20, hide:
false);
569 ModBase(950, a / 40, hide:
false);
570 ModBase(952, a / 40, hide:
false);
571 ModBase(955, a / 40, hide:
false);
572 ModBase(953, a / 40, hide:
false);
573 ModBase(958, a / 40, hide:
false);
574 ModBase(956, a / 40, hide:
false);
575 ModBase(954, a / 40, hide:
false);
576 ModBase(959, a / 40, hide:
false);
577 ModBase(964, a / 40, hide:
false);
578 ModBase(961, a / 40, hide:
false);
581 ModBase(964, a * 20, hide:
false);
584 ModBase(963, a * 20, hide:
false);
587 ModBase(6020, a, hide:
false);
590 ModBase(950, a * -10, hide:
false);
591 ModBase(951, a * 5, hide:
false);
592 ModBase(961, a * 5, hide:
false);
593 ModBase(8793, a, hide:
false);
594 ModBase(6607, a, hide:
false);
597 ModBase(60, a * 15, hide:
false);
598 ModBase(79, a * 5, hide:
false);
599 ModBase(953, a * 3, hide:
false);
600 ModBase(961, a, hide:
false);
601 ModBase(960, a, hide:
false);
613 ModBase(73, -a * 5, hide:
false);
616 ModBase(73, a * 5, hide:
false);
619 ModBase(65, a * 3, hide:
false);
622 ModBase(65, -a * 3, hide:
false);
625 ModBase(73, a * 5, hide:
false);
628 ModBase(73, -a * 5, hide:
false);
631 ModBase(72, a * 3, hide:
false);
634 ModBase(72, -a * 3, hide:
false);
637 ModBase(300, a * 4, hide:
false);
640 ModBase(300, -a * 4, hide:
false);
643 ModBase(79, a * 5, hide:
false);
646 ModBase(79, -a * 5, hide:
false);
649 ModBase(70, a * 3, hide:
false);
652 ModBase(70, -a * 3, hide:
false);
655 ModBase(77, a * 5, hide:
false);
658 ModBase(77, -a * 5, hide:
false);
661 ModBase(307, a * 4, hide:
false);
664 ModBase(307, -a * 4, hide:
false);
667 ModBase(951, a * 5, hide:
false);
668 ModBase(950, -a * 5, hide:
false);
671 ModBase(951, -a * 5, hide:
false);
672 ModBase(950, a * 5, hide:
false);
675 ModBase(952, a * 5, hide:
false);
678 ModBase(952, -a * 5, hide:
false);
681 ModBase(960, a * 5, hide:
false);
682 ModBase(956, -a * 5, hide:
false);
685 ModBase(960, -a * 5, hide:
false);
686 ModBase(956, a * 5, hide:
false);
703 ModBase(404, -a * 10, hide:
false);
706 ModBase(77, -a * (4 + num / 5), hide:
false);
709 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
716 ModBase(73, a * (5 + num / 3), hide:
false);
717 ModBase(77, -a * (5 + num / 3), hide:
false);
720 ModBase(404, a * 10, hide:
false);
721 ModBase(401, a, hide:
false);
722 ModBase(79, a * (10 + num / 5), hide:
false);
729 ModBase(65, a * (12 + num), hide:
false);
730 ModBase(77, -a * (5 + num / 5), hide:
false);
737 ModBase(64, -a * (10 + num), hide:
false);
738 ModBase(67, a * (5 + num / 2), hide:
false);
741 ModBase(71, -a * (5 + num / 3), hide:
false);
742 ModBase(72, -a * (4 + num / 4), hide:
false);
743 ModBase(74, a * (6 + num / 2), hide:
false);
744 ModBase(75, a * (2 + num / 6), hide:
false);
747 ModBase(60, -a * 15, hide:
false);
748 ModBase(70, -a * (4 + num / 3), hide:
false);
751 ModBase(61, -a * 15, hide:
false);
752 ModBase(76, -a * (4 + num / 3), hide:
false);
755 ModBase(65, a * (15 + num / 2), hide:
false);
756 ModBase(79, -a * (10 + num / 5), hide:
false);
759 ModBase(77, -a * (3 + num / 4), hide:
false);
762 ModBase(961, a * 5, hide:
false);
765 ModBase(955, a * 20, hide:
false);
770 string text = base.source.GetText(
"textExtra");
773 string text2 = text.SplitNewline().TryGet(value - 1, 99);
774 if (!text2.IsEmpty())
777 string[] array = text2.Split(
',');
778 foreach (
string obj
in array)
782 if (text3.ToInt() < 0)
784 text4 = text4.Replace(
"+#1", text3);
786 text4 = text4.Replace(
"#1", text3);
802 if (value2.
source.id !=
id)
804 NoteElement(value2.
id, value2.
Value);
808 void ModAttribute(
int ele)
811 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
814 void ModBase(
int ele,
int _v,
bool hide)
820 if (!hide && _v != 0)
822 NoteElement(ele, _v);
840 void NoteElement(
int ele,
int a)
845 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
847 else if (row.
tag.Contains(
"flag"))
853 string @ref = ((a < 0) ?
"" :
"+") + a;
857 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num3, 1, 5));
858 Note(
"modValueRes".lang(row.
GetName(), @ref));
862 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)