1using System.Collections.Generic;
294 public static readonly
int[]
IDS =
new int[144]
296 1228, 1640, 1641, 1642, 1643, 1644, 1645, 1636, 1646, 1648,
297 1649, 1650, 1651, 1652, 1653, 1647, 1654, 1635, 1633, 1612,
298 1620, 1621, 1622, 1623, 1624, 1634, 1625, 1627, 1628, 1629,
299 1630, 1631, 1632, 1626, 1655, 1656, 1657, 1212, 1211, 1210,
300 1209, 1208, 1207, 1213, 1206, 1204, 1203, 1202, 1201, 1200,
301 1227, 1205, 1214, 1215, 1216, 1658, 1659, 1660, 1661, 1662,
302 1750, 1226, 1224, 1223, 1222, 1221, 1220, 1219, 1218, 1217,
303 1611, 1610, 1225, 1345, 1404, 1405, 1406, 1407, 1408, 1409,
304 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419,
305 1420, 1403, 1402, 1401, 1400, 1272, 1273, 1274, 1275, 1276,
306 1290, 1300, 1305, 1421, 1310, 1320, 1325, 1330, 1335, 1340,
307 1270, 1350, 1355, 1315, 1422, 1423, 1424, 1242, 1241, 1240,
308 1239, 1238, 1237, 1236, 1235, 1234, 1233, 1232, 1231, 1230,
309 1229, 1271, 1244, 1425, 1426, 1252, 1251, 1250, 1249, 1248,
310 1247, 1246, 1245, 1243
315 public static List<string>
hints =
new List<string>();
317 public static string[]
featRef =
new string[5];
321 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
327 string[] array = base.source.GetText().SplitNewline();
328 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
336 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
340 return !base.IsGlobalElement;
343 public override Sprite
GetIcon(
string suffix =
"")
345 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
353 n.AddText(
"_bullet".lang() +
hint);
363 text = text +
hint.StripLastPun() +
", ";
365 return text.TrimEnd(
' ').TrimEnd(
',');
370 if (base.source.req.Length != 0)
373 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()))
383 if (base.source.req.Length != 0)
385 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());
400 int value = base.Value;
401 int A = Mathf.Abs(a);
402 int invert = ((a >= 0) ? 1 : (-1));
405 featRef[0] = a.ToString() ??
"";
406 featRef[1] = a.ToString() ??
"";
410 if (!
hint && a > 0 && chara !=
null)
417 featRef[0] = (a * 25).ToString() ??
"";
420 ModBase(78, -a * 10, hide:
false);
423 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
426 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
429 ModBase(60, a * 4, hide:
false);
432 ModBase(61, a * 4, hide:
false);
435 ModBase(62, a * 4, hide:
false);
462 ModBase(79, a * 5, hide:
false);
465 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
468 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
471 ModBase(150, a * 2, hide:
false);
474 ModBase(210, a * 3, hide:
false);
475 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
478 ModBase(291, a * 4, hide:
false);
481 ModBase(100, a * 3, hide:
false);
484 ModBase(306, a * 4, hide:
false);
487 ModBase(78, a * 2, hide:
false);
490 ModBase(77, a * 2, hide:
false);
493 featRef[0] = (a * 10).ToString() ??
"";
496 featRef[0] = (a * 10).ToString() ??
"";
499 ModBase(78, a * 15, hide:
false);
502 featRef[0] = (a * 20).ToString() ??
"";
503 featRef[1] = (a * 5).ToString() ??
"";
506 featRef[0] = a.ToString() ??
"";
523 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
524 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
525 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
528 ModBase(60, A * 2 * invert, hide:
false);
529 ModBase(79, A * 3 * invert, hide:
false);
532 ModBase(64, a * 50, hide:
true);
533 ModBase(401, a, hide:
false);
536 ModBase(403, a * 20, hide:
true);
539 ModBase(955, a * 5, hide:
false);
540 ModBase(953, a * 10, hide:
false);
541 ModBase(958, a * 5, hide:
false);
542 ModBase(956, a * 10, hide:
false);
543 ModBase(950, a * -5, hide:
false);
544 ModBase(960, a * -5, hide:
false);
545 ModBase(423, a, hide:
false);
548 ModBase(418, a * 100, hide:
false);
551 ModBase(956, a * 5, hide:
false);
552 ModBase(959, a * 5, hide:
false);
553 ModBase(423, a, hide:
false);
554 ModBase(424, a, hide:
false);
555 ModBase(421, a, hide:
false);
558 ModBase(954, a * 10, hide:
false);
559 ModBase(423, a, hide:
false);
560 ModBase(425, a, hide:
false);
561 ModBase(424, a, hide:
false);
562 ModBase(421, a, hide:
false);
565 ModBase(955, a * 5, hide:
false);
566 ModBase(953, a * 5, hide:
false);
569 ModBase(961, a * 5, hide:
false);
570 ModBase(953, a * 5, hide:
false);
571 ModBase(958, a * 5, hide:
false);
572 ModBase(956, a * 5, hide:
false);
573 ModBase(954, a * 5, hide:
false);
574 ModBase(957, a * 5, hide:
false);
575 ModBase(959, a * 5, hide:
false);
578 ModBase(962, a * 20, hide:
false);
581 ModBase(951, a * 15, hide:
false);
584 ModBase(952, a * -10, hide:
false);
585 ModBase(955, a * 20, hide:
false);
586 ModBase(964, a * 20, hide:
false);
589 ModBase(950, a / 40, hide:
false);
590 ModBase(952, a / 40, hide:
false);
591 ModBase(955, a / 40, hide:
false);
592 ModBase(953, a / 40, hide:
false);
593 ModBase(958, a / 40, hide:
false);
594 ModBase(956, a / 40, hide:
false);
595 ModBase(954, a / 40, hide:
false);
596 ModBase(959, a / 40, hide:
false);
597 ModBase(964, a / 40, hide:
false);
598 ModBase(961, a / 40, hide:
false);
601 ModBase(964, a * 20, hide:
false);
604 ModBase(963, a * 20, hide:
false);
607 ModBase(6020, a, hide:
false);
610 ModBase(950, a * -10, hide:
false);
611 ModBase(951, a * 5, hide:
false);
612 ModBase(961, a * 5, hide:
false);
613 ModBase(8793, a, hide:
false);
614 ModBase(6607, a, hide:
false);
617 ModBase(60, a * 15, hide:
false);
618 ModBase(79, a * 5, hide:
false);
619 ModBase(953, a * 3, hide:
false);
620 ModBase(961, a, hide:
false);
621 ModBase(960, a, hide:
false);
633 featRef[3] = (a - 7).ToString() ??
"";
639 array[0] = num2.ToString() ??
"";
640 featRef[1] = (a * 2).ToString() ??
"";
644 ModBase(73, -a * 5, hide:
false);
647 ModBase(73, a * 5, hide:
false);
650 ModBase(65, a * 3, hide:
false);
653 ModBase(65, -a * 3, hide:
false);
656 ModBase(73, a * 5, hide:
false);
659 ModBase(73, -a * 5, hide:
false);
662 ModBase(72, a * 3, hide:
false);
665 ModBase(72, -a * 3, hide:
false);
668 ModBase(300, a * 4, hide:
false);
671 ModBase(300, -a * 4, hide:
false);
674 ModBase(79, a * 5, hide:
false);
677 ModBase(79, -a * 5, hide:
false);
680 ModBase(70, a * 3, hide:
false);
683 ModBase(70, -a * 3, hide:
false);
686 ModBase(77, a * 5, hide:
false);
689 ModBase(77, -a * 5, hide:
false);
692 ModBase(307, a * 4, hide:
false);
695 ModBase(307, -a * 4, hide:
false);
698 ModBase(951, a * 5, hide:
false);
699 ModBase(950, -a * 5, hide:
false);
702 ModBase(951, -a * 5, hide:
false);
703 ModBase(950, a * 5, hide:
false);
706 ModBase(952, a * 5, hide:
false);
709 ModBase(952, -a * 5, hide:
false);
712 ModBase(960, a * 5, hide:
false);
713 ModBase(956, -a * 5, hide:
false);
716 ModBase(960, -a * 5, hide:
false);
717 ModBase(956, a * 5, hide:
false);
734 ModBase(404, -a * 10, hide:
false);
737 ModBase(77, -a * (4 + num / 5), hide:
false);
740 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
747 ModBase(73, a * (5 + num / 3), hide:
false);
748 ModBase(77, -a * (5 + num / 3), hide:
false);
751 ModBase(404, a * 10, hide:
false);
752 ModBase(401, a, hide:
false);
753 ModBase(79, a * (10 + num / 5), hide:
false);
760 ModBase(65, a * (12 + num), hide:
false);
761 ModBase(77, -a * (5 + num / 5), hide:
false);
768 ModBase(64, -a * (10 + num), hide:
false);
769 ModBase(67, a * (5 + num / 2), hide:
false);
772 ModBase(71, -a * (5 + num / 3), hide:
false);
773 ModBase(72, -a * (4 + num / 4), hide:
false);
774 ModBase(74, a * (6 + num / 2), hide:
false);
775 ModBase(75, a * (2 + num / 6), hide:
false);
778 ModBase(60, -a * 15, hide:
false);
779 ModBase(70, -a * (4 + num / 3), hide:
false);
782 ModBase(61, -a * 15, hide:
false);
783 ModBase(76, -a * (4 + num / 3), hide:
false);
786 ModBase(65, a * (15 + num / 2), hide:
false);
787 ModBase(79, -a * (10 + num / 5), hide:
false);
790 ModBase(77, -a * (3 + num / 4), hide:
false);
793 ModBase(961, a * 5, hide:
false);
796 ModBase(955, a * 20, hide:
false);
801 string text = base.source.GetText(
"textExtra");
804 string text2 = text.SplitNewline().TryGet(value - 1, 99);
805 if (!text2.IsEmpty())
808 string[] array2 = text2.Split(
',');
809 foreach (
string obj
in array2)
813 if (text3.ToInt() < 0)
815 text4 = text4.Replace(
"+#1", text3);
817 text4 = text4.Replace(
"#1", text3);
833 if (value2.
source.id !=
id)
835 NoteElement(value2.
id, value2.
Value);
839 void ModAttribute(
int ele)
842 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
845 void ModBase(
int ele,
int _v,
bool hide)
851 if (!hide && _v != 0)
853 NoteElement(ele, _v);
871 void NoteElement(
int ele,
int a)
876 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
878 else if (row.
tag.Contains(
"flag"))
884 string @ref = ((a < 0) ?
"" :
"+") + a;
888 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num4, 1, 5));
889 Note(
"modValueRes".lang(row.
GetName(), @ref));
893 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 featSlimeEvolution
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)