1using System.Collections.Generic;
272 public static readonly
int[]
IDS =
new int[133]
274 1621, 1622, 1623, 1624, 1629, 1626, 1627, 1628, 1620, 1625,
275 1630, 1414, 1611, 1610, 1422, 1421, 1420, 1419, 1418, 1417,
276 1416, 1415, 1631, 1413, 1612, 1632, 1648, 1634, 1412, 1662,
277 1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652,
278 1651, 1650, 1649, 1647, 1646, 1645, 1644, 1643, 1642, 1641,
279 1640, 1636, 1635, 1633, 1411, 1233, 1409, 1230, 1231, 1232,
280 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243,
281 1410, 1245, 1246, 1247, 1248, 1249, 1270, 1271, 1272, 1273,
282 1290, 1300, 1229, 1228, 1227, 1226, 1200, 1201, 1202, 1203,
283 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1305, 1212,
284 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223,
285 1224, 1225, 1213, 1310, 1244, 1320, 1406, 1405, 1404, 1403,
286 1402, 1401, 1400, 1355, 1350, 1315, 1345, 1340, 1335, 1330,
292 public static List<string>
hints =
new List<string>();
294 public static string[]
featRef =
new string[5];
298 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
304 string[] array = base.source.GetText().SplitNewline();
305 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
313 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
317 return !base.IsGlobalElement;
320 public override Sprite
GetIcon(
string suffix =
"")
322 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
330 n.AddText(
"_bullet".lang() +
hint);
340 text = text +
hint.StripLastPun() +
", ";
342 return text.TrimEnd(
' ').TrimEnd(
',');
347 if (base.source.req.Length != 0)
350 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()))
360 if (base.source.req.Length != 0)
362 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());
377 int value = base.Value;
378 int A = Mathf.Abs(a);
379 int invert = ((a >= 0) ? 1 : (-1));
382 featRef[0] = a.ToString() ??
"";
383 featRef[1] = a.ToString() ??
"";
387 if (!
hint && a > 0 && chara !=
null)
394 featRef[0] = (a * 25).ToString() ??
"";
397 ModBase(78, -a * 10, hide:
false);
400 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
403 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
406 ModBase(60, a * 4, hide:
false);
409 ModBase(61, a * 4, hide:
false);
412 ModBase(62, a * 4, hide:
false);
439 ModBase(79, a * 5, hide:
false);
442 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
445 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
448 ModBase(150, a * 2, hide:
false);
451 ModBase(210, a * 3, hide:
false);
452 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
455 ModBase(291, a * 4, hide:
false);
458 ModBase(100, a * 3, hide:
false);
461 ModBase(306, a * 4, hide:
false);
464 ModBase(78, a * 2, hide:
false);
467 ModBase(77, a * 2, hide:
false);
470 featRef[0] = (a * 10).ToString() ??
"";
473 featRef[0] = (a * 10).ToString() ??
"";
476 ModBase(78, a * 15, hide:
false);
479 featRef[0] = (a * 20).ToString() ??
"";
480 featRef[1] = (a * 5).ToString() ??
"";
483 featRef[0] = a.ToString() ??
"";
500 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
501 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
502 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
505 ModBase(60, A * 2 * invert, hide:
false);
506 ModBase(79, A * 3 * invert, hide:
false);
509 ModBase(64, a * 50, hide:
true);
510 ModBase(401, a, hide:
false);
513 ModBase(403, a * 20, hide:
true);
516 ModBase(955, a * 5, hide:
false);
517 ModBase(953, a * 10, hide:
false);
518 ModBase(958, a * 5, hide:
false);
519 ModBase(956, a * 10, hide:
false);
520 ModBase(950, a * -5, hide:
false);
523 ModBase(418, a * 100, hide:
false);
526 ModBase(956, a * 5, hide:
false);
527 ModBase(959, a * 5, hide:
false);
528 ModBase(423, a, hide:
false);
529 ModBase(424, a, hide:
false);
530 ModBase(421, a, hide:
false);
533 ModBase(954, a * 10, hide:
false);
534 ModBase(423, a, hide:
false);
535 ModBase(425, a, hide:
false);
536 ModBase(424, a, hide:
false);
537 ModBase(421, a, hide:
false);
540 ModBase(955, a * 5, hide:
false);
541 ModBase(953, a * 5, hide:
false);
544 ModBase(961, a * 5, hide:
false);
545 ModBase(953, a * 5, hide:
false);
546 ModBase(958, a * 5, hide:
false);
547 ModBase(956, a * 5, hide:
false);
548 ModBase(954, a * 5, hide:
false);
549 ModBase(957, a * 5, hide:
false);
550 ModBase(959, a * 5, hide:
false);
553 ModBase(962, a * 20, hide:
false);
556 ModBase(951, a * 15, hide:
false);
559 ModBase(952, a * -10, hide:
false);
560 ModBase(955, a * 20, hide:
false);
561 ModBase(964, a * 20, hide:
false);
564 ModBase(950, a / 40, hide:
false);
565 ModBase(952, a / 40, hide:
false);
566 ModBase(955, a / 40, hide:
false);
567 ModBase(953, a / 40, hide:
false);
568 ModBase(958, a / 40, hide:
false);
569 ModBase(956, a / 40, hide:
false);
570 ModBase(954, a / 40, hide:
false);
571 ModBase(959, a / 40, hide:
false);
572 ModBase(964, a / 40, hide:
false);
573 ModBase(961, a / 40, hide:
false);
576 ModBase(964, a * 20, hide:
false);
579 ModBase(963, a * 20, hide:
false);
582 ModBase(6020, a, hide:
false);
585 ModBase(60, a * 15, hide:
false);
586 ModBase(79, a * 5, hide:
false);
587 ModBase(953, a * 3, hide:
false);
588 ModBase(961, a, hide:
false);
589 ModBase(960, a, hide:
false);
601 ModBase(73, -a * 5, hide:
false);
604 ModBase(73, a * 5, hide:
false);
607 ModBase(65, a * 3, hide:
false);
610 ModBase(65, -a * 3, hide:
false);
613 ModBase(73, a * 5, hide:
false);
616 ModBase(73, -a * 5, hide:
false);
619 ModBase(72, a * 3, hide:
false);
622 ModBase(72, -a * 3, hide:
false);
625 ModBase(300, a * 4, hide:
false);
628 ModBase(300, -a * 4, hide:
false);
631 ModBase(79, a * 5, hide:
false);
634 ModBase(79, -a * 5, hide:
false);
637 ModBase(70, a * 3, hide:
false);
640 ModBase(70, -a * 3, hide:
false);
643 ModBase(77, a * 5, hide:
false);
646 ModBase(77, -a * 5, hide:
false);
649 ModBase(307, a * 4, hide:
false);
652 ModBase(307, -a * 4, hide:
false);
655 ModBase(951, a * 5, hide:
false);
656 ModBase(950, -a * 5, hide:
false);
659 ModBase(951, -a * 5, hide:
false);
660 ModBase(950, a * 5, hide:
false);
663 ModBase(952, a * 5, hide:
false);
666 ModBase(952, -a * 5, hide:
false);
669 ModBase(960, a * 5, hide:
false);
670 ModBase(956, -a * 5, hide:
false);
673 ModBase(960, -a * 5, hide:
false);
674 ModBase(956, a * 5, hide:
false);
691 ModBase(404, -a * 10, hide:
false);
694 ModBase(77, -a * (4 + num / 5), hide:
false);
697 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
704 ModBase(73, a * (5 + num / 3), hide:
false);
705 ModBase(77, -a * (5 + num / 3), hide:
false);
708 ModBase(404, a * 10, hide:
false);
709 ModBase(401, a, hide:
false);
710 ModBase(79, a * (10 + num / 5), hide:
false);
717 ModBase(65, a * (12 + num), hide:
false);
718 ModBase(77, -a * (5 + num / 5), hide:
false);
725 ModBase(64, -a * (10 + num), hide:
false);
726 ModBase(67, a * (5 + num / 2), hide:
false);
729 ModBase(71, -a * (5 + num / 3), hide:
false);
730 ModBase(72, -a * (4 + num / 4), hide:
false);
731 ModBase(74, a * (6 + num / 2), hide:
false);
732 ModBase(75, a * (2 + num / 6), hide:
false);
735 ModBase(60, -a * 15, hide:
false);
736 ModBase(70, -a * (4 + num / 3), hide:
false);
739 ModBase(61, -a * 15, hide:
false);
740 ModBase(76, -a * (4 + num / 3), hide:
false);
743 ModBase(65, a * (15 + num / 2), hide:
false);
744 ModBase(79, -a * (10 + num / 5), hide:
false);
747 ModBase(77, -a * (3 + num / 4), hide:
false);
750 ModBase(961, a * 5, hide:
false);
753 ModBase(955, a * 20, hide:
false);
758 string text = base.source.GetText(
"textExtra");
761 string text2 = text.SplitNewline().TryGet(value - 1, 99);
762 if (!text2.IsEmpty())
765 string[] array = text2.Split(
',');
766 foreach (
string obj
in array)
770 if (text3.ToInt() < 0)
772 text4 = text4.Replace(
"+#1", text3);
774 text4 = text4.Replace(
"#1", text3);
790 if (value2.
source.id !=
id)
792 NoteElement(value2.
id, value2.
Value);
796 void ModAttribute(
int ele)
799 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
802 void ModBase(
int ele,
int _v,
bool hide)
808 if (!hide && _v != 0)
810 NoteElement(ele, _v);
828 void NoteElement(
int ele,
int a)
833 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
835 else if (row.
tag.Contains(
"flag"))
841 string @ref = ((a < 0) ?
"" :
"+") + a;
845 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num3, 1, 5));
846 Note(
"modValueRes".lang(row.
GetName(), @ref));
850 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)