1using System.Collections.Generic;
280 public static readonly
int[]
IDS =
new int[137]
282 1223, 1650, 1649, 1648, 1647, 1646, 1645, 1644, 1643, 1642,
283 1641, 1640, 1636, 1635, 1634, 1651, 1633, 1631, 1630, 1629,
284 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1612,
285 1611, 1632, 1652, 1653, 1654, 1222, 1200, 1201, 1202, 1203,
286 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213,
287 1214, 1215, 1655, 1656, 1657, 1658, 1659, 1660, 1610, 1661,
288 1221, 1220, 1219, 1218, 1217, 1216, 1662, 1422, 1750, 1420,
289 1251, 1252, 1270, 1271, 1272, 1273, 1290, 1300, 1305, 1310,
290 1315, 1320, 1330, 1335, 1340, 1345, 1350, 1355, 1400, 1401,
291 1402, 1403, 1404, 1250, 1249, 1248, 1247, 1232, 1231, 1421,
292 1230, 1229, 1228, 1227, 1226, 1225, 1224, 1233, 1405, 1234,
293 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245,
294 1246, 1235, 1406, 1325, 1408, 1419, 1418, 1417, 1416, 1415,
295 1407, 1413, 1409, 1410, 1414, 1412, 1411
300 public static List<string>
hints =
new List<string>();
302 public static string[]
featRef =
new string[5];
306 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
312 string[] array = base.source.GetText().SplitNewline();
313 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
321 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
325 return !base.IsGlobalElement;
328 public override Sprite
GetIcon(
string suffix =
"")
330 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
338 n.AddText(
"_bullet".lang() +
hint);
348 text = text +
hint.StripLastPun() +
", ";
350 return text.TrimEnd(
' ').TrimEnd(
',');
355 if (base.source.req.Length != 0)
358 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()))
368 if (base.source.req.Length != 0)
370 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());
385 int value = base.Value;
386 int A = Mathf.Abs(a);
387 int invert = ((a >= 0) ? 1 : (-1));
390 featRef[0] = a.ToString() ??
"";
391 featRef[1] = a.ToString() ??
"";
395 if (!
hint && a > 0 && chara !=
null)
402 featRef[0] = (a * 25).ToString() ??
"";
405 ModBase(78, -a * 10, hide:
false);
408 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
411 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
414 ModBase(60, a * 4, hide:
false);
417 ModBase(61, a * 4, hide:
false);
420 ModBase(62, a * 4, hide:
false);
447 ModBase(79, a * 5, hide:
false);
450 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
453 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
456 ModBase(150, a * 2, hide:
false);
459 ModBase(210, a * 3, hide:
false);
460 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
463 ModBase(291, a * 4, hide:
false);
466 ModBase(100, a * 3, hide:
false);
469 ModBase(306, a * 4, hide:
false);
472 ModBase(78, a * 2, hide:
false);
475 ModBase(77, a * 2, hide:
false);
478 featRef[0] = (a * 10).ToString() ??
"";
481 featRef[0] = (a * 10).ToString() ??
"";
484 ModBase(78, a * 15, hide:
false);
487 featRef[0] = (a * 20).ToString() ??
"";
488 featRef[1] = (a * 5).ToString() ??
"";
491 featRef[0] = a.ToString() ??
"";
508 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
509 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
510 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
513 ModBase(60, A * 2 * invert, hide:
false);
514 ModBase(79, A * 3 * invert, hide:
false);
517 ModBase(64, a * 50, hide:
true);
518 ModBase(401, a, hide:
false);
521 ModBase(403, a * 20, hide:
true);
524 ModBase(955, a * 5, hide:
false);
525 ModBase(953, a * 10, hide:
false);
526 ModBase(958, a * 5, hide:
false);
527 ModBase(956, a * 10, hide:
false);
528 ModBase(950, a * -5, hide:
false);
529 ModBase(960, a * -5, hide:
false);
530 ModBase(423, a, hide:
false);
533 ModBase(418, a * 100, hide:
false);
536 ModBase(956, a * 5, hide:
false);
537 ModBase(959, a * 5, hide:
false);
538 ModBase(423, a, hide:
false);
539 ModBase(424, a, hide:
false);
540 ModBase(421, a, hide:
false);
543 ModBase(954, a * 10, hide:
false);
544 ModBase(423, a, hide:
false);
545 ModBase(425, a, hide:
false);
546 ModBase(424, a, hide:
false);
547 ModBase(421, a, hide:
false);
550 ModBase(955, a * 5, hide:
false);
551 ModBase(953, a * 5, hide:
false);
554 ModBase(961, a * 5, hide:
false);
555 ModBase(953, a * 5, hide:
false);
556 ModBase(958, a * 5, hide:
false);
557 ModBase(956, a * 5, hide:
false);
558 ModBase(954, a * 5, hide:
false);
559 ModBase(957, a * 5, hide:
false);
560 ModBase(959, a * 5, hide:
false);
563 ModBase(962, a * 20, hide:
false);
566 ModBase(951, a * 15, hide:
false);
569 ModBase(952, a * -10, hide:
false);
570 ModBase(955, a * 20, hide:
false);
571 ModBase(964, a * 20, hide:
false);
574 ModBase(950, a / 40, hide:
false);
575 ModBase(952, a / 40, hide:
false);
576 ModBase(955, a / 40, hide:
false);
577 ModBase(953, a / 40, hide:
false);
578 ModBase(958, a / 40, hide:
false);
579 ModBase(956, a / 40, hide:
false);
580 ModBase(954, a / 40, hide:
false);
581 ModBase(959, a / 40, hide:
false);
582 ModBase(964, a / 40, hide:
false);
583 ModBase(961, a / 40, hide:
false);
586 ModBase(964, a * 20, hide:
false);
589 ModBase(963, a * 20, hide:
false);
592 ModBase(6020, a, hide:
false);
595 ModBase(950, a * -10, hide:
false);
596 ModBase(951, a * 5, hide:
false);
597 ModBase(961, a * 5, hide:
false);
598 ModBase(8793, a, hide:
false);
599 ModBase(6607, a, hide:
false);
602 ModBase(60, a * 15, hide:
false);
603 ModBase(79, a * 5, hide:
false);
604 ModBase(953, a * 3, hide:
false);
605 ModBase(961, a, hide:
false);
606 ModBase(960, a, hide:
false);
621 array[0] = num2.ToString() ??
"";
622 featRef[1] = (a * 2).ToString() ??
"";
626 ModBase(73, -a * 5, hide:
false);
629 ModBase(73, a * 5, hide:
false);
632 ModBase(65, a * 3, hide:
false);
635 ModBase(65, -a * 3, hide:
false);
638 ModBase(73, a * 5, hide:
false);
641 ModBase(73, -a * 5, hide:
false);
644 ModBase(72, a * 3, hide:
false);
647 ModBase(72, -a * 3, hide:
false);
650 ModBase(300, a * 4, hide:
false);
653 ModBase(300, -a * 4, hide:
false);
656 ModBase(79, a * 5, hide:
false);
659 ModBase(79, -a * 5, hide:
false);
662 ModBase(70, a * 3, hide:
false);
665 ModBase(70, -a * 3, hide:
false);
668 ModBase(77, a * 5, hide:
false);
671 ModBase(77, -a * 5, hide:
false);
674 ModBase(307, a * 4, hide:
false);
677 ModBase(307, -a * 4, hide:
false);
680 ModBase(951, a * 5, hide:
false);
681 ModBase(950, -a * 5, hide:
false);
684 ModBase(951, -a * 5, hide:
false);
685 ModBase(950, a * 5, hide:
false);
688 ModBase(952, a * 5, hide:
false);
691 ModBase(952, -a * 5, hide:
false);
694 ModBase(960, a * 5, hide:
false);
695 ModBase(956, -a * 5, hide:
false);
698 ModBase(960, -a * 5, hide:
false);
699 ModBase(956, a * 5, hide:
false);
716 ModBase(404, -a * 10, hide:
false);
719 ModBase(77, -a * (4 + num / 5), hide:
false);
722 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
729 ModBase(73, a * (5 + num / 3), hide:
false);
730 ModBase(77, -a * (5 + num / 3), hide:
false);
733 ModBase(404, a * 10, hide:
false);
734 ModBase(401, a, hide:
false);
735 ModBase(79, a * (10 + num / 5), hide:
false);
742 ModBase(65, a * (12 + num), hide:
false);
743 ModBase(77, -a * (5 + num / 5), hide:
false);
750 ModBase(64, -a * (10 + num), hide:
false);
751 ModBase(67, a * (5 + num / 2), hide:
false);
754 ModBase(71, -a * (5 + num / 3), hide:
false);
755 ModBase(72, -a * (4 + num / 4), hide:
false);
756 ModBase(74, a * (6 + num / 2), hide:
false);
757 ModBase(75, a * (2 + num / 6), hide:
false);
760 ModBase(60, -a * 15, hide:
false);
761 ModBase(70, -a * (4 + num / 3), hide:
false);
764 ModBase(61, -a * 15, hide:
false);
765 ModBase(76, -a * (4 + num / 3), hide:
false);
768 ModBase(65, a * (15 + num / 2), hide:
false);
769 ModBase(79, -a * (10 + num / 5), hide:
false);
772 ModBase(77, -a * (3 + num / 4), hide:
false);
775 ModBase(961, a * 5, hide:
false);
778 ModBase(955, a * 20, hide:
false);
783 string text = base.source.GetText(
"textExtra");
786 string text2 = text.SplitNewline().TryGet(value - 1, 99);
787 if (!text2.IsEmpty())
790 string[] array2 = text2.Split(
',');
791 foreach (
string obj
in array2)
795 if (text3.ToInt() < 0)
797 text4 = text4.Replace(
"+#1", text3);
799 text4 = text4.Replace(
"#1", text3);
815 if (value2.
source.id !=
id)
817 NoteElement(value2.
id, value2.
Value);
821 void ModAttribute(
int ele)
824 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
827 void ModBase(
int ele,
int _v,
bool hide)
833 if (!hide && _v != 0)
835 NoteElement(ele, _v);
853 void NoteElement(
int ele,
int a)
858 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
860 else if (row.
tag.Contains(
"flag"))
866 string @ref = ((a < 0) ?
"" :
"+") + a;
870 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num4, 1, 5));
871 Note(
"modValueRes".lang(row.
GetName(), @ref));
875 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)