1using System.Collections.Generic;
274 public static readonly
int[]
IDS =
new int[134]
276 1620, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1630, 1621,
277 1629, 1414, 1611, 1610, 1422, 1421, 1420, 1419, 1418, 1417,
278 1416, 1415, 1631, 1413, 1612, 1632, 1648, 1634, 1412, 1662,
279 1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652,
280 1651, 1650, 1649, 1647, 1646, 1645, 1644, 1643, 1642, 1641,
281 1640, 1636, 1635, 1633, 1411, 1234, 1409, 1230, 1231, 1232,
282 1233, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1229,
283 1243, 1410, 1246, 1247, 1248, 1249, 1250, 1270, 1271, 1272,
284 1273, 1290, 1300, 1244, 1305, 1228, 1226, 1200, 1201, 1202,
285 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1227,
286 1212, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222,
287 1223, 1224, 1225, 1213, 1310, 1245, 1320, 1407, 1406, 1405,
288 1404, 1403, 1402, 1401, 1408, 1400, 1350, 1315, 1345, 1340,
289 1335, 1330, 1325, 1355
294 public static List<string>
hints =
new List<string>();
296 public static string[]
featRef =
new string[5];
300 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
306 string[] array = base.source.GetText().SplitNewline();
307 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
315 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
319 return !base.IsGlobalElement;
322 public override Sprite
GetIcon(
string suffix =
"")
324 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
332 n.AddText(
"_bullet".lang() +
hint);
342 text = text +
hint.StripLastPun() +
", ";
344 return text.TrimEnd(
' ').TrimEnd(
',');
349 if (base.source.req.Length != 0)
352 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()))
362 if (base.source.req.Length != 0)
364 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());
379 int value = base.Value;
380 int A = Mathf.Abs(a);
381 int invert = ((a >= 0) ? 1 : (-1));
384 featRef[0] = a.ToString() ??
"";
385 featRef[1] = a.ToString() ??
"";
389 if (!
hint && a > 0 && chara !=
null)
396 featRef[0] = (a * 25).ToString() ??
"";
399 ModBase(78, -a * 10, hide:
false);
402 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
405 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
408 ModBase(60, a * 4, hide:
false);
411 ModBase(61, a * 4, hide:
false);
414 ModBase(62, a * 4, hide:
false);
441 ModBase(79, a * 5, hide:
false);
444 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
447 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
450 ModBase(150, a * 2, hide:
false);
453 ModBase(210, a * 3, hide:
false);
454 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
457 ModBase(291, a * 4, hide:
false);
460 ModBase(100, a * 3, hide:
false);
463 ModBase(306, a * 4, hide:
false);
466 ModBase(78, a * 2, hide:
false);
469 ModBase(77, a * 2, hide:
false);
472 featRef[0] = (a * 10).ToString() ??
"";
475 featRef[0] = (a * 10).ToString() ??
"";
478 ModBase(78, a * 15, hide:
false);
481 featRef[0] = (a * 20).ToString() ??
"";
482 featRef[1] = (a * 5).ToString() ??
"";
485 featRef[0] = a.ToString() ??
"";
502 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
503 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
504 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
507 ModBase(60, A * 2 * invert, hide:
false);
508 ModBase(79, A * 3 * invert, hide:
false);
511 ModBase(64, a * 50, hide:
true);
512 ModBase(401, a, hide:
false);
515 ModBase(403, a * 20, hide:
true);
518 ModBase(955, a * 5, hide:
false);
519 ModBase(953, a * 10, hide:
false);
520 ModBase(958, a * 5, hide:
false);
521 ModBase(956, a * 10, hide:
false);
522 ModBase(950, a * -5, hide:
false);
523 ModBase(960, a * -5, hide:
false);
526 ModBase(418, a * 100, hide:
false);
529 ModBase(956, a * 5, hide:
false);
530 ModBase(959, a * 5, hide:
false);
531 ModBase(423, a, hide:
false);
532 ModBase(424, a, hide:
false);
533 ModBase(421, a, hide:
false);
536 ModBase(954, a * 10, hide:
false);
537 ModBase(423, a, hide:
false);
538 ModBase(425, a, hide:
false);
539 ModBase(424, a, hide:
false);
540 ModBase(421, a, hide:
false);
543 ModBase(955, a * 5, hide:
false);
544 ModBase(953, a * 5, hide:
false);
547 ModBase(961, a * 5, hide:
false);
548 ModBase(953, a * 5, hide:
false);
549 ModBase(958, a * 5, hide:
false);
550 ModBase(956, a * 5, hide:
false);
551 ModBase(954, a * 5, hide:
false);
552 ModBase(957, a * 5, hide:
false);
553 ModBase(959, a * 5, hide:
false);
556 ModBase(962, a * 20, hide:
false);
559 ModBase(951, a * 15, hide:
false);
562 ModBase(952, a * -10, hide:
false);
563 ModBase(955, a * 20, hide:
false);
564 ModBase(964, a * 20, hide:
false);
567 ModBase(950, a / 40, hide:
false);
568 ModBase(952, a / 40, hide:
false);
569 ModBase(955, a / 40, hide:
false);
570 ModBase(953, a / 40, hide:
false);
571 ModBase(958, a / 40, hide:
false);
572 ModBase(956, a / 40, hide:
false);
573 ModBase(954, a / 40, hide:
false);
574 ModBase(959, a / 40, hide:
false);
575 ModBase(964, a / 40, hide:
false);
576 ModBase(961, a / 40, hide:
false);
579 ModBase(964, a * 20, hide:
false);
582 ModBase(963, a * 20, hide:
false);
585 ModBase(6020, a, hide:
false);
588 ModBase(950, a * -10, hide:
false);
589 ModBase(951, a * 5, hide:
false);
590 ModBase(961, a * 5, hide:
false);
591 ModBase(8793, a, hide:
false);
592 ModBase(6607, a, hide:
false);
595 ModBase(60, a * 15, hide:
false);
596 ModBase(79, a * 5, hide:
false);
597 ModBase(953, a * 3, hide:
false);
598 ModBase(961, a, hide:
false);
599 ModBase(960, a, hide:
false);
611 ModBase(73, -a * 5, hide:
false);
614 ModBase(73, a * 5, hide:
false);
617 ModBase(65, a * 3, hide:
false);
620 ModBase(65, -a * 3, hide:
false);
623 ModBase(73, a * 5, hide:
false);
626 ModBase(73, -a * 5, hide:
false);
629 ModBase(72, a * 3, hide:
false);
632 ModBase(72, -a * 3, hide:
false);
635 ModBase(300, a * 4, hide:
false);
638 ModBase(300, -a * 4, hide:
false);
641 ModBase(79, a * 5, hide:
false);
644 ModBase(79, -a * 5, hide:
false);
647 ModBase(70, a * 3, hide:
false);
650 ModBase(70, -a * 3, hide:
false);
653 ModBase(77, a * 5, hide:
false);
656 ModBase(77, -a * 5, hide:
false);
659 ModBase(307, a * 4, hide:
false);
662 ModBase(307, -a * 4, hide:
false);
665 ModBase(951, a * 5, hide:
false);
666 ModBase(950, -a * 5, hide:
false);
669 ModBase(951, -a * 5, hide:
false);
670 ModBase(950, a * 5, hide:
false);
673 ModBase(952, a * 5, hide:
false);
676 ModBase(952, -a * 5, hide:
false);
679 ModBase(960, a * 5, hide:
false);
680 ModBase(956, -a * 5, hide:
false);
683 ModBase(960, -a * 5, hide:
false);
684 ModBase(956, a * 5, hide:
false);
701 ModBase(404, -a * 10, hide:
false);
704 ModBase(77, -a * (4 + num / 5), hide:
false);
707 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
714 ModBase(73, a * (5 + num / 3), hide:
false);
715 ModBase(77, -a * (5 + num / 3), hide:
false);
718 ModBase(404, a * 10, hide:
false);
719 ModBase(401, a, hide:
false);
720 ModBase(79, a * (10 + num / 5), hide:
false);
727 ModBase(65, a * (12 + num), hide:
false);
728 ModBase(77, -a * (5 + num / 5), hide:
false);
735 ModBase(64, -a * (10 + num), hide:
false);
736 ModBase(67, a * (5 + num / 2), hide:
false);
739 ModBase(71, -a * (5 + num / 3), hide:
false);
740 ModBase(72, -a * (4 + num / 4), hide:
false);
741 ModBase(74, a * (6 + num / 2), hide:
false);
742 ModBase(75, a * (2 + num / 6), hide:
false);
745 ModBase(60, -a * 15, hide:
false);
746 ModBase(70, -a * (4 + num / 3), hide:
false);
749 ModBase(61, -a * 15, hide:
false);
750 ModBase(76, -a * (4 + num / 3), hide:
false);
753 ModBase(65, a * (15 + num / 2), hide:
false);
754 ModBase(79, -a * (10 + num / 5), hide:
false);
757 ModBase(77, -a * (3 + num / 4), hide:
false);
760 ModBase(961, a * 5, hide:
false);
763 ModBase(955, a * 20, hide:
false);
768 string text = base.source.GetText(
"textExtra");
771 string text2 = text.SplitNewline().TryGet(value - 1, 99);
772 if (!text2.IsEmpty())
775 string[] array = text2.Split(
',');
776 foreach (
string obj
in array)
780 if (text3.ToInt() < 0)
782 text4 = text4.Replace(
"+#1", text3);
784 text4 = text4.Replace(
"#1", text3);
800 if (value2.
source.id !=
id)
802 NoteElement(value2.
id, value2.
Value);
806 void ModAttribute(
int ele)
809 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
812 void ModBase(
int ele,
int _v,
bool hide)
818 if (!hide && _v != 0)
820 NoteElement(ele, _v);
838 void NoteElement(
int ele,
int a)
843 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
845 else if (row.
tag.Contains(
"flag"))
851 string @ref = ((a < 0) ?
"" :
"+") + a;
855 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num3, 1, 5));
856 Note(
"modValueRes".lang(row.
GetName(), @ref));
860 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)