1using System.Collections.Generic;
288 public static readonly
int[]
IDS =
new int[141]
290 1225, 1651, 1650, 1649, 1648, 1647, 1646, 1645, 1644, 1643,
291 1642, 1641, 1640, 1636, 1635, 1634, 1633, 1632, 1611, 1612,
292 1620, 1621, 1622, 1623, 1652, 1624, 1626, 1627, 1628, 1629,
293 1630, 1631, 1625, 1653, 1654, 1655, 1212, 1211, 1210, 1209,
294 1208, 1207, 1213, 1206, 1204, 1203, 1202, 1201, 1200, 1224,
295 1205, 1610, 1214, 1216, 1656, 1657, 1658, 1659, 1660, 1661,
296 1215, 1662, 1222, 1221, 1220, 1219, 1218, 1217, 1223, 1426,
297 1750, 1424, 1270, 1271, 1272, 1273, 1290, 1300, 1305, 1310,
298 1315, 1320, 1325, 1252, 1330, 1345, 1350, 1355, 1400, 1401,
299 1402, 1403, 1404, 1405, 1406, 1407, 1335, 1408, 1251, 1249,
300 1236, 1235, 1234, 1425, 1233, 1232, 1231, 1230, 1229, 1228,
301 1227, 1250, 1226, 1238, 1239, 1240, 1241, 1242, 1243, 1244,
302 1245, 1246, 1247, 1248, 1237, 1409, 1340, 1411, 1423, 1422,
303 1421, 1420, 1419, 1418, 1410, 1416, 1415, 1414, 1413, 1412,
309 public static List<string>
hints =
new List<string>();
311 public static string[]
featRef =
new string[5];
315 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
321 string[] array = base.source.GetText().SplitNewline();
322 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
330 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
334 return !base.IsGlobalElement;
337 public override Sprite
GetIcon(
string suffix =
"")
339 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
347 n.AddText(
"_bullet".lang() +
hint);
357 text = text +
hint.StripLastPun() +
", ";
359 return text.TrimEnd(
' ').TrimEnd(
',');
364 if (base.source.req.Length != 0)
367 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()))
377 if (base.source.req.Length != 0)
379 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());
394 int value = base.Value;
395 int A = Mathf.Abs(a);
396 int invert = ((a >= 0) ? 1 : (-1));
399 featRef[0] = a.ToString() ??
"";
400 featRef[1] = a.ToString() ??
"";
404 if (!
hint && a > 0 && chara !=
null)
411 featRef[0] = (a * 25).ToString() ??
"";
414 ModBase(78, -a * 10, hide:
false);
417 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
420 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
423 ModBase(60, a * 4, hide:
false);
426 ModBase(61, a * 4, hide:
false);
429 ModBase(62, a * 4, hide:
false);
456 ModBase(79, a * 5, hide:
false);
459 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
462 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
465 ModBase(150, a * 2, hide:
false);
468 ModBase(210, a * 3, hide:
false);
469 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
472 ModBase(291, a * 4, hide:
false);
475 ModBase(100, a * 3, hide:
false);
478 ModBase(306, a * 4, hide:
false);
481 ModBase(78, a * 2, hide:
false);
484 ModBase(77, a * 2, hide:
false);
487 featRef[0] = (a * 10).ToString() ??
"";
490 featRef[0] = (a * 10).ToString() ??
"";
493 ModBase(78, a * 15, hide:
false);
496 featRef[0] = (a * 20).ToString() ??
"";
497 featRef[1] = (a * 5).ToString() ??
"";
500 featRef[0] = a.ToString() ??
"";
517 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
518 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
519 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
522 ModBase(60, A * 2 * invert, hide:
false);
523 ModBase(79, A * 3 * invert, hide:
false);
526 ModBase(64, a * 50, hide:
true);
527 ModBase(401, a, hide:
false);
530 ModBase(403, a * 20, hide:
true);
533 ModBase(955, a * 5, hide:
false);
534 ModBase(953, a * 10, hide:
false);
535 ModBase(958, a * 5, hide:
false);
536 ModBase(956, a * 10, hide:
false);
537 ModBase(950, a * -5, hide:
false);
538 ModBase(960, a * -5, hide:
false);
539 ModBase(423, a, hide:
false);
542 ModBase(418, a * 100, hide:
false);
545 ModBase(956, a * 5, hide:
false);
546 ModBase(959, a * 5, hide:
false);
547 ModBase(423, a, hide:
false);
548 ModBase(424, a, hide:
false);
549 ModBase(421, a, hide:
false);
552 ModBase(954, a * 10, hide:
false);
553 ModBase(423, a, hide:
false);
554 ModBase(425, a, hide:
false);
555 ModBase(424, a, hide:
false);
556 ModBase(421, a, hide:
false);
559 ModBase(955, a * 5, hide:
false);
560 ModBase(953, a * 5, hide:
false);
563 ModBase(961, a * 5, hide:
false);
564 ModBase(953, a * 5, hide:
false);
565 ModBase(958, a * 5, hide:
false);
566 ModBase(956, a * 5, hide:
false);
567 ModBase(954, a * 5, hide:
false);
568 ModBase(957, a * 5, hide:
false);
569 ModBase(959, a * 5, hide:
false);
572 ModBase(962, a * 20, hide:
false);
575 ModBase(951, a * 15, hide:
false);
578 ModBase(952, a * -10, hide:
false);
579 ModBase(955, a * 20, hide:
false);
580 ModBase(964, a * 20, hide:
false);
583 ModBase(950, a / 40, hide:
false);
584 ModBase(952, a / 40, hide:
false);
585 ModBase(955, a / 40, hide:
false);
586 ModBase(953, a / 40, hide:
false);
587 ModBase(958, a / 40, hide:
false);
588 ModBase(956, a / 40, hide:
false);
589 ModBase(954, a / 40, hide:
false);
590 ModBase(959, a / 40, hide:
false);
591 ModBase(964, a / 40, hide:
false);
592 ModBase(961, a / 40, hide:
false);
595 ModBase(964, a * 20, hide:
false);
598 ModBase(963, a * 20, hide:
false);
601 ModBase(6020, a, hide:
false);
604 ModBase(950, a * -10, hide:
false);
605 ModBase(951, a * 5, hide:
false);
606 ModBase(961, a * 5, hide:
false);
607 ModBase(8793, a, hide:
false);
608 ModBase(6607, a, hide:
false);
611 ModBase(60, a * 15, hide:
false);
612 ModBase(79, a * 5, hide:
false);
613 ModBase(953, a * 3, hide:
false);
614 ModBase(961, a, hide:
false);
615 ModBase(960, a, hide:
false);
630 array[0] = num2.ToString() ??
"";
631 featRef[1] = (a * 2).ToString() ??
"";
635 ModBase(73, -a * 5, hide:
false);
638 ModBase(73, a * 5, hide:
false);
641 ModBase(65, a * 3, hide:
false);
644 ModBase(65, -a * 3, hide:
false);
647 ModBase(73, a * 5, hide:
false);
650 ModBase(73, -a * 5, hide:
false);
653 ModBase(72, a * 3, hide:
false);
656 ModBase(72, -a * 3, hide:
false);
659 ModBase(300, a * 4, hide:
false);
662 ModBase(300, -a * 4, hide:
false);
665 ModBase(79, a * 5, hide:
false);
668 ModBase(79, -a * 5, hide:
false);
671 ModBase(70, a * 3, hide:
false);
674 ModBase(70, -a * 3, hide:
false);
677 ModBase(77, a * 5, hide:
false);
680 ModBase(77, -a * 5, hide:
false);
683 ModBase(307, a * 4, hide:
false);
686 ModBase(307, -a * 4, hide:
false);
689 ModBase(951, a * 5, hide:
false);
690 ModBase(950, -a * 5, hide:
false);
693 ModBase(951, -a * 5, hide:
false);
694 ModBase(950, a * 5, hide:
false);
697 ModBase(952, a * 5, hide:
false);
700 ModBase(952, -a * 5, hide:
false);
703 ModBase(960, a * 5, hide:
false);
704 ModBase(956, -a * 5, hide:
false);
707 ModBase(960, -a * 5, hide:
false);
708 ModBase(956, a * 5, hide:
false);
725 ModBase(404, -a * 10, hide:
false);
728 ModBase(77, -a * (4 + num / 5), hide:
false);
731 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
738 ModBase(73, a * (5 + num / 3), hide:
false);
739 ModBase(77, -a * (5 + num / 3), hide:
false);
742 ModBase(404, a * 10, hide:
false);
743 ModBase(401, a, hide:
false);
744 ModBase(79, a * (10 + num / 5), hide:
false);
751 ModBase(65, a * (12 + num), hide:
false);
752 ModBase(77, -a * (5 + num / 5), hide:
false);
759 ModBase(64, -a * (10 + num), hide:
false);
760 ModBase(67, a * (5 + num / 2), hide:
false);
763 ModBase(71, -a * (5 + num / 3), hide:
false);
764 ModBase(72, -a * (4 + num / 4), hide:
false);
765 ModBase(74, a * (6 + num / 2), hide:
false);
766 ModBase(75, a * (2 + num / 6), hide:
false);
769 ModBase(60, -a * 15, hide:
false);
770 ModBase(70, -a * (4 + num / 3), hide:
false);
773 ModBase(61, -a * 15, hide:
false);
774 ModBase(76, -a * (4 + num / 3), hide:
false);
777 ModBase(65, a * (15 + num / 2), hide:
false);
778 ModBase(79, -a * (10 + num / 5), hide:
false);
781 ModBase(77, -a * (3 + num / 4), hide:
false);
784 ModBase(961, a * 5, hide:
false);
787 ModBase(955, a * 20, hide:
false);
792 string text = base.source.GetText(
"textExtra");
795 string text2 = text.SplitNewline().TryGet(value - 1, 99);
796 if (!text2.IsEmpty())
799 string[] array2 = text2.Split(
',');
800 foreach (
string obj
in array2)
804 if (text3.ToInt() < 0)
806 text4 = text4.Replace(
"+#1", text3);
808 text4 = text4.Replace(
"#1", text3);
824 if (value2.
source.id !=
id)
826 NoteElement(value2.
id, value2.
Value);
830 void ModAttribute(
int ele)
833 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
836 void ModBase(
int ele,
int _v,
bool hide)
842 if (!hide && _v != 0)
844 NoteElement(ele, _v);
862 void NoteElement(
int ele,
int a)
867 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
869 else if (row.
tag.Contains(
"flag"))
875 string @ref = ((a < 0) ?
"" :
"+") + a;
879 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num4, 1, 5));
880 Note(
"modValueRes".lang(row.
GetName(), @ref));
884 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)