1using System.Collections.Generic;
276 public static readonly
int[]
IDS =
new int[135]
278 1620, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1630,
279 1629, 1414, 1611, 1610, 1422, 1421, 1420, 1419, 1418, 1417,
280 1416, 1415, 1631, 1413, 1412, 1612, 1632, 1648, 1634, 1411,
281 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653,
282 1652, 1651, 1650, 1649, 1647, 1646, 1645, 1644, 1643, 1642,
283 1641, 1640, 1636, 1635, 1633, 1410, 1234, 1408, 1230, 1231,
284 1232, 1233, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242,
285 1229, 1243, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1270,
286 1271, 1272, 1273, 1290, 1409, 1300, 1228, 1226, 1200, 1201,
287 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211,
288 1227, 1212, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221,
289 1222, 1223, 1224, 1225, 1213, 1305, 1244, 1315, 1405, 1404,
290 1403, 1402, 1401, 1400, 1355, 1350, 1345, 1340, 1310, 1335,
291 1330, 1325, 1320, 1406, 1407
296 public static List<string>
hints =
new List<string>();
298 public static string[]
featRef =
new string[5];
302 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
308 string[] array = base.source.GetText().SplitNewline();
309 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
317 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
321 return !base.IsGlobalElement;
324 public override Sprite
GetIcon(
string suffix =
"")
326 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
334 n.AddText(
"_bullet".lang() +
hint);
344 text = text +
hint.StripLastPun() +
", ";
346 return text.TrimEnd(
' ').TrimEnd(
',');
351 if (base.source.req.Length != 0)
354 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()))
364 if (base.source.req.Length != 0)
366 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());
381 int value = base.Value;
382 int A = Mathf.Abs(a);
383 int invert = ((a >= 0) ? 1 : (-1));
386 featRef[0] = a.ToString() ??
"";
387 featRef[1] = a.ToString() ??
"";
391 if (!
hint && a > 0 && chara !=
null)
398 featRef[0] = (a * 25).ToString() ??
"";
401 ModBase(78, -a * 10, hide:
false);
404 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
407 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
410 ModBase(60, a * 4, hide:
false);
413 ModBase(61, a * 4, hide:
false);
416 ModBase(62, a * 4, hide:
false);
443 ModBase(79, a * 5, hide:
false);
446 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
449 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
452 ModBase(150, a * 2, hide:
false);
455 ModBase(210, a * 3, hide:
false);
456 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
459 ModBase(291, a * 4, hide:
false);
462 ModBase(100, a * 3, hide:
false);
465 ModBase(306, a * 4, hide:
false);
468 ModBase(78, a * 2, hide:
false);
471 ModBase(77, a * 2, hide:
false);
474 featRef[0] = (a * 10).ToString() ??
"";
477 featRef[0] = (a * 10).ToString() ??
"";
480 ModBase(78, a * 15, hide:
false);
483 featRef[0] = (a * 20).ToString() ??
"";
484 featRef[1] = (a * 5).ToString() ??
"";
487 featRef[0] = a.ToString() ??
"";
504 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
505 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
506 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
509 ModBase(60, A * 2 * invert, hide:
false);
510 ModBase(79, A * 3 * invert, hide:
false);
513 ModBase(64, a * 50, hide:
true);
514 ModBase(401, a, hide:
false);
517 ModBase(403, a * 20, hide:
true);
520 ModBase(955, a * 5, hide:
false);
521 ModBase(953, a * 10, hide:
false);
522 ModBase(958, a * 5, hide:
false);
523 ModBase(956, a * 10, hide:
false);
524 ModBase(950, a * -5, hide:
false);
525 ModBase(960, a * -5, hide:
false);
526 ModBase(423, a, hide:
false);
529 ModBase(418, a * 100, hide:
false);
532 ModBase(956, a * 5, hide:
false);
533 ModBase(959, a * 5, hide:
false);
534 ModBase(423, a, hide:
false);
535 ModBase(424, a, hide:
false);
536 ModBase(421, a, hide:
false);
539 ModBase(954, a * 10, hide:
false);
540 ModBase(423, a, hide:
false);
541 ModBase(425, a, hide:
false);
542 ModBase(424, a, hide:
false);
543 ModBase(421, a, hide:
false);
546 ModBase(955, a * 5, hide:
false);
547 ModBase(953, a * 5, hide:
false);
550 ModBase(961, a * 5, hide:
false);
551 ModBase(953, a * 5, hide:
false);
552 ModBase(958, a * 5, hide:
false);
553 ModBase(956, a * 5, hide:
false);
554 ModBase(954, a * 5, hide:
false);
555 ModBase(957, a * 5, hide:
false);
556 ModBase(959, a * 5, hide:
false);
559 ModBase(962, a * 20, hide:
false);
562 ModBase(951, a * 15, hide:
false);
565 ModBase(952, a * -10, hide:
false);
566 ModBase(955, a * 20, hide:
false);
567 ModBase(964, a * 20, hide:
false);
570 ModBase(950, a / 40, hide:
false);
571 ModBase(952, a / 40, hide:
false);
572 ModBase(955, a / 40, hide:
false);
573 ModBase(953, a / 40, hide:
false);
574 ModBase(958, a / 40, hide:
false);
575 ModBase(956, a / 40, hide:
false);
576 ModBase(954, a / 40, hide:
false);
577 ModBase(959, a / 40, hide:
false);
578 ModBase(964, a / 40, hide:
false);
579 ModBase(961, a / 40, hide:
false);
582 ModBase(964, a * 20, hide:
false);
585 ModBase(963, a * 20, hide:
false);
588 ModBase(6020, a, hide:
false);
591 ModBase(950, a * -10, hide:
false);
592 ModBase(951, a * 5, hide:
false);
593 ModBase(961, a * 5, hide:
false);
594 ModBase(8793, a, hide:
false);
595 ModBase(6607, a, hide:
false);
598 ModBase(60, a * 15, hide:
false);
599 ModBase(79, a * 5, hide:
false);
600 ModBase(953, a * 3, hide:
false);
601 ModBase(961, a, hide:
false);
602 ModBase(960, a, hide:
false);
614 ModBase(73, -a * 5, hide:
false);
617 ModBase(73, a * 5, hide:
false);
620 ModBase(65, a * 3, hide:
false);
623 ModBase(65, -a * 3, hide:
false);
626 ModBase(73, a * 5, hide:
false);
629 ModBase(73, -a * 5, hide:
false);
632 ModBase(72, a * 3, hide:
false);
635 ModBase(72, -a * 3, hide:
false);
638 ModBase(300, a * 4, hide:
false);
641 ModBase(300, -a * 4, hide:
false);
644 ModBase(79, a * 5, hide:
false);
647 ModBase(79, -a * 5, hide:
false);
650 ModBase(70, a * 3, hide:
false);
653 ModBase(70, -a * 3, hide:
false);
656 ModBase(77, a * 5, hide:
false);
659 ModBase(77, -a * 5, hide:
false);
662 ModBase(307, a * 4, hide:
false);
665 ModBase(307, -a * 4, hide:
false);
668 ModBase(951, a * 5, hide:
false);
669 ModBase(950, -a * 5, hide:
false);
672 ModBase(951, -a * 5, hide:
false);
673 ModBase(950, a * 5, hide:
false);
676 ModBase(952, a * 5, hide:
false);
679 ModBase(952, -a * 5, hide:
false);
682 ModBase(960, a * 5, hide:
false);
683 ModBase(956, -a * 5, hide:
false);
686 ModBase(960, -a * 5, hide:
false);
687 ModBase(956, a * 5, hide:
false);
704 ModBase(404, -a * 10, hide:
false);
707 ModBase(77, -a * (4 + num / 5), hide:
false);
710 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
717 ModBase(73, a * (5 + num / 3), hide:
false);
718 ModBase(77, -a * (5 + num / 3), hide:
false);
721 ModBase(404, a * 10, hide:
false);
722 ModBase(401, a, hide:
false);
723 ModBase(79, a * (10 + num / 5), hide:
false);
730 ModBase(65, a * (12 + num), hide:
false);
731 ModBase(77, -a * (5 + num / 5), hide:
false);
738 ModBase(64, -a * (10 + num), hide:
false);
739 ModBase(67, a * (5 + num / 2), hide:
false);
742 ModBase(71, -a * (5 + num / 3), hide:
false);
743 ModBase(72, -a * (4 + num / 4), hide:
false);
744 ModBase(74, a * (6 + num / 2), hide:
false);
745 ModBase(75, a * (2 + num / 6), hide:
false);
748 ModBase(60, -a * 15, hide:
false);
749 ModBase(70, -a * (4 + num / 3), hide:
false);
752 ModBase(61, -a * 15, hide:
false);
753 ModBase(76, -a * (4 + num / 3), hide:
false);
756 ModBase(65, a * (15 + num / 2), hide:
false);
757 ModBase(79, -a * (10 + num / 5), hide:
false);
760 ModBase(77, -a * (3 + num / 4), hide:
false);
763 ModBase(961, a * 5, hide:
false);
766 ModBase(955, a * 20, hide:
false);
771 string text = base.source.GetText(
"textExtra");
774 string text2 = text.SplitNewline().TryGet(value - 1, 99);
775 if (!text2.IsEmpty())
778 string[] array = text2.Split(
',');
779 foreach (
string obj
in array)
783 if (text3.ToInt() < 0)
785 text4 = text4.Replace(
"+#1", text3);
787 text4 = text4.Replace(
"#1", text3);
803 if (value2.
source.id !=
id)
805 NoteElement(value2.
id, value2.
Value);
809 void ModAttribute(
int ele)
812 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
815 void ModBase(
int ele,
int _v,
bool hide)
821 if (!hide && _v != 0)
823 NoteElement(ele, _v);
841 void NoteElement(
int ele,
int a)
846 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
848 else if (row.
tag.Contains(
"flag"))
854 string @ref = ((a < 0) ?
"" :
"+") + a;
858 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num3, 1, 5));
859 Note(
"modValueRes".lang(row.
GetName(), @ref));
863 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)