1using System.Collections.Generic;
300 public static readonly
int[]
IDS =
new int[147]
302 1624, 1625, 1626, 1631, 1628, 1629, 1630, 1623, 1632, 1627,
303 1622, 1421, 1620, 1612, 1611, 1610, 1427, 1426, 1425, 1424,
304 1423, 1422, 1633, 1420, 1621, 1634, 1650, 1636, 1419, 1750,
305 1664, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655,
306 1635, 1654, 1652, 1651, 1649, 1648, 1647, 1646, 1645, 1644,
307 1643, 1642, 1641, 1640, 1653, 1418, 1345, 1416, 1233, 1234,
308 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244,
309 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1417, 1270, 1271,
310 1272, 1273, 1274, 1275, 1276, 1290, 1300, 1232, 1305, 1231,
311 1229, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208,
312 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218,
313 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228,
314 1230, 1310, 1252, 1320, 1415, 1414, 1413, 1412, 1411, 1410,
315 1409, 1408, 1407, 1315, 1406, 1405, 1404, 1403, 1402, 1401,
316 1400, 1355, 1350, 1340, 1335, 1330, 1325
321 public static List<string>
hints =
new List<string>();
323 public static string[]
featRef =
new string[5];
327 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
333 string[] array = base.source.GetText().SplitNewline();
334 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
342 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
346 return !base.IsGlobalElement;
349 public override Sprite
GetIcon(
string suffix =
"")
351 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
359 n.AddText(
"_bullet".lang() +
hint);
369 text = text +
hint.StripLastPun() +
", ";
371 return text.TrimEnd(
' ').TrimEnd(
',');
376 if (base.source.req.Length != 0)
379 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()))
389 if (base.source.req.Length != 0)
391 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());
412 elinFeatApplyEventArgs.
SetData(a);
414 a = elinFeatApplyEventArgs.
data;
415 int value = base.Value;
416 int A = Mathf.Abs(a);
417 int invert = ((a >= 0) ? 1 : (-1));
420 featRef[0] = a.ToString() ??
"";
421 featRef[1] = a.ToString() ??
"";
425 if (!
hint && a > 0 && chara !=
null)
432 featRef[0] = (a * 25).ToString() ??
"";
435 ModBase(78, -a * 10, hide:
false);
438 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
441 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
444 ModBase(60, a * 4, hide:
false);
447 ModBase(61, a * 4, hide:
false);
450 ModBase(62, a * 4, hide:
false);
477 ModBase(79, a * 5, hide:
false);
480 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
483 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
486 ModBase(150, a * 2, hide:
false);
489 ModBase(210, a * 3, hide:
false);
490 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
493 ModBase(291, a * 4, hide:
false);
496 ModBase(100, a * 3, hide:
false);
499 ModBase(306, a * 4, hide:
false);
502 ModBase(78, a * 2, hide:
false);
505 ModBase(77, a * 2, hide:
false);
508 featRef[0] = (a * 10).ToString() ??
"";
511 featRef[0] = (a * 10).ToString() ??
"";
514 ModBase(78, a * 15, hide:
false);
517 featRef[0] = (a * 20).ToString() ??
"";
518 featRef[1] = (a * 5).ToString() ??
"";
521 featRef[0] = a.ToString() ??
"";
538 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
539 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
540 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
543 ModBase(60, A * 2 * invert, hide:
false);
544 ModBase(79, A * 3 * invert, hide:
false);
547 ModBase(64, a * 50, hide:
true);
548 ModBase(401, a, hide:
false);
551 ModBase(403, a * 20, hide:
true);
554 ModBase(955, a * 5, hide:
false);
555 ModBase(953, a * 10, hide:
false);
556 ModBase(958, a * 5, hide:
false);
557 ModBase(956, a * 10, hide:
false);
558 ModBase(950, a * -5, hide:
false);
559 ModBase(960, a * -5, hide:
false);
560 ModBase(423, a, hide:
false);
563 ModBase(418, a * 100, hide:
false);
566 ModBase(956, a * 5, hide:
false);
567 ModBase(959, a * 5, hide:
false);
568 ModBase(423, a, hide:
false);
569 ModBase(424, a, hide:
false);
570 ModBase(421, a, hide:
false);
573 ModBase(954, a * 10, hide:
false);
574 ModBase(423, a, hide:
false);
575 ModBase(425, a, hide:
false);
576 ModBase(424, a, hide:
false);
577 ModBase(421, a, hide:
false);
580 ModBase(955, a * 5, hide:
false);
581 ModBase(953, a * 5, hide:
false);
584 ModBase(961, a * 5, hide:
false);
585 ModBase(953, a * 5, hide:
false);
586 ModBase(958, a * 5, hide:
false);
587 ModBase(956, a * 5, hide:
false);
588 ModBase(954, a * 5, hide:
false);
589 ModBase(957, a * 5, hide:
false);
590 ModBase(959, a * 5, hide:
false);
593 ModBase(962, a * 20, hide:
false);
596 ModBase(951, a * 15, hide:
false);
599 ModBase(952, a * -10, hide:
false);
600 ModBase(955, a * 20, hide:
false);
601 ModBase(964, a * 20, hide:
false);
604 ModBase(950, a / 40, hide:
false);
605 ModBase(952, a / 40, hide:
false);
606 ModBase(955, a / 40, hide:
false);
607 ModBase(953, a / 40, hide:
false);
608 ModBase(958, a / 40, hide:
false);
609 ModBase(956, a / 40, hide:
false);
610 ModBase(954, a / 40, hide:
false);
611 ModBase(959, a / 40, hide:
false);
612 ModBase(964, a / 40, hide:
false);
613 ModBase(961, a / 40, hide:
false);
616 ModBase(964, a * 20, hide:
false);
619 ModBase(963, a * 20, hide:
false);
622 ModBase(6020, a, hide:
false);
625 ModBase(950, a * -10, hide:
false);
626 ModBase(951, a * 5, hide:
false);
627 ModBase(961, a * 5, hide:
false);
628 ModBase(8793, a, hide:
false);
629 ModBase(6607, a, hide:
false);
632 ModBase(60, a * 15, hide:
false);
633 ModBase(79, a * 5, hide:
false);
634 ModBase(953, a * 3, hide:
false);
635 ModBase(961, a, hide:
false);
636 ModBase(960, a, hide:
false);
648 featRef[3] = (a - 7).ToString() ??
"";
654 array[0] = num2.ToString() ??
"";
655 featRef[1] = (a * 2).ToString() ??
"";
659 ModBase(73, -a * 5, hide:
false);
662 ModBase(73, a * 5, hide:
false);
665 ModBase(65, a * 3, hide:
false);
668 ModBase(65, -a * 3, hide:
false);
671 ModBase(73, a * 5, hide:
false);
674 ModBase(73, -a * 5, hide:
false);
677 ModBase(72, a * 3, hide:
false);
680 ModBase(72, -a * 3, hide:
false);
683 ModBase(300, a * 4, hide:
false);
686 ModBase(300, -a * 4, hide:
false);
689 ModBase(79, a * 5, hide:
false);
692 ModBase(79, -a * 5, hide:
false);
695 ModBase(70, a * 3, hide:
false);
698 ModBase(70, -a * 3, hide:
false);
701 ModBase(77, a * 5, hide:
false);
704 ModBase(77, -a * 5, hide:
false);
707 ModBase(307, a * 4, hide:
false);
710 ModBase(307, -a * 4, hide:
false);
713 ModBase(951, a * 5, hide:
false);
714 ModBase(950, -a * 5, hide:
false);
717 ModBase(951, -a * 5, hide:
false);
718 ModBase(950, a * 5, hide:
false);
721 ModBase(952, a * 5, hide:
false);
724 ModBase(952, -a * 5, hide:
false);
727 ModBase(960, a * 5, hide:
false);
728 ModBase(956, -a * 5, hide:
false);
731 ModBase(960, -a * 5, hide:
false);
732 ModBase(956, a * 5, hide:
false);
749 ModBase(404, -a * 10, hide:
false);
752 ModBase(77, -a * (4 + num / 5), hide:
false);
755 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
762 ModBase(73, a * (5 + num / 3), hide:
false);
763 ModBase(77, -a * (5 + num / 3), hide:
false);
766 ModBase(404, a * 10, hide:
false);
767 ModBase(401, a, hide:
false);
768 ModBase(79, a * (10 + num / 5), hide:
false);
775 ModBase(65, a * (12 + num), hide:
false);
776 ModBase(77, -a * (5 + num / 5), hide:
false);
783 ModBase(64, -a * (10 + num), hide:
false);
784 ModBase(67, a * (5 + num / 2), hide:
false);
787 ModBase(71, -a * (5 + num / 3), hide:
false);
788 ModBase(72, -a * (4 + num / 4), hide:
false);
789 ModBase(74, a * (6 + num / 2), hide:
false);
790 ModBase(75, a * (2 + num / 6), hide:
false);
793 ModBase(60, -a * 15, hide:
false);
794 ModBase(70, -a * (4 + num / 3), hide:
false);
797 ModBase(61, -a * 15, hide:
false);
798 ModBase(76, -a * (4 + num / 3), hide:
false);
801 ModBase(65, a * (15 + num / 2), hide:
false);
802 ModBase(79, -a * (10 + num / 5), hide:
false);
805 ModBase(77, -a * (3 + num / 4), hide:
false);
808 ModBase(961, a * 5, hide:
false);
811 ModBase(955, a * 20, hide:
false);
816 string text = base.source.GetText(
"textExtra");
819 string text2 = text.SplitNewline().TryGet(value - 1, 99);
820 if (!text2.IsEmpty())
823 string[] array2 = text2.Split(
',');
824 foreach (
string obj
in array2)
827 string text4 = obj.Replace(
";",
",");
828 if (text3.ToInt() < 0)
830 text4 = text4.Replace(
"+#1", text3);
832 text4 = text4.Replace(
"#1", text3);
848 if (value2.
source.id !=
id)
850 NoteElement(value2.
id, value2.
Value);
854 void ModAttribute(
int ele)
857 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
860 void ModBase(
int ele,
int _v,
bool hide)
866 if (!hide && _v != 0)
868 NoteElement(ele, _v);
886 void NoteElement(
int ele,
int a)
891 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
893 else if (row.
tag.Contains(
"flag"))
899 string @ref = ((a < 0) ?
"" :
"+") + a;
903 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num4, 1, 5));
904 Note(
"modValueRes".lang(row.
GetName(), @ref));
908 Note(
"modValue".lang(row.
GetName(), @ref));
static void PublishEvent(string eventId, object data=null)
void UnequipAll(int idSlot)
void AddRandomBodyPart(bool msg=false)
ElementContainer faithElements
static SourceManager sources
virtual void SetData(T newData)
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 featSlimeEvolution
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)