1using System.Collections.Generic;
310 public static readonly
int[]
IDS =
new int[152]
312 1235, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1642, 1650,
313 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1651, 1641, 1640,
314 1636, 1612, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627,
315 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1659, 1611,
316 1660, 1662, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1215,
317 1207, 1205, 1204, 1203, 1202, 1201, 1200, 1234, 1206, 1216,
318 1217, 1218, 1663, 1664, 1750, 1233, 1232, 1231, 1230, 1228,
319 1227, 1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1661,
320 1610, 1229, 1404, 1409, 1410, 1411, 1412, 1413, 1414, 1415,
321 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425,
322 1408, 1407, 1406, 1405, 1300, 1305, 1310, 1236, 1315, 1320,
323 1325, 1330, 1426, 1335, 1345, 1350, 1355, 1400, 1401, 1402,
324 1403, 1276, 1340, 1291, 1427, 1429, 1240, 1241, 1242, 1243,
325 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253,
326 1270, 1271, 1272, 1239, 1428, 1238, 1290, 1430, 1275, 1274,
332 public static List<string>
hints =
new List<string>();
334 public static string[]
featRef =
new string[5];
338 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
344 string[] array = base.source.GetText().SplitNewline();
345 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
353 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
357 return !base.IsGlobalElement;
360 public override Sprite
GetIcon(
string suffix =
"")
362 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
370 n.AddText(
"_bullet".lang() +
hint);
380 text = text +
hint.StripLastPun() +
", ";
382 return text.TrimEnd(
' ').TrimEnd(
',');
387 if (base.source.req.Length != 0)
390 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()))
400 if (base.source.req.Length != 0)
402 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());
423 elinFeatApplyEventArgs.
SetData(a);
425 a = elinFeatApplyEventArgs.
data;
426 int value = base.Value;
427 int A = Mathf.Abs(a);
428 int invert = ((a >= 0) ? 1 : (-1));
431 featRef[0] = a.ToString() ??
"";
432 featRef[1] = a.ToString() ??
"";
436 if (!
hint && a > 0 && chara !=
null)
443 featRef[0] = (a * 25).ToString() ??
"";
446 ModBase(78, -a * 10, hide:
false);
449 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
452 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
455 ModBase(60, a * 4, hide:
false);
458 ModBase(61, a * 4, hide:
false);
461 ModBase(62, a * 4, hide:
false);
488 ModBase(79, a * 5, hide:
false);
491 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
494 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
497 ModBase(150, a * 2, hide:
false);
500 ModBase(210, a * 3, hide:
false);
501 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
504 ModBase(291, a * 4, hide:
false);
507 ModBase(100, a * 3, hide:
false);
510 ModBase(306, a * 4, hide:
false);
513 ModBase(78, a * 2, hide:
false);
516 ModBase(77, a * 2, hide:
false);
519 featRef[0] = (a * 10).ToString() ??
"";
522 featRef[0] = (a * 10).ToString() ??
"";
525 ModBase(78, a * 15, hide:
false);
528 featRef[0] = (a * 20).ToString() ??
"";
529 featRef[1] = (a * 5).ToString() ??
"";
532 featRef[0] = a.ToString() ??
"";
549 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
550 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
551 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
554 ModBase(60, A * 2 * invert, hide:
false);
555 ModBase(79, A * 3 * invert, hide:
false);
558 ModBase(64, a * 50, hide:
true);
559 ModBase(401, a, hide:
false);
562 ModBase(403, a * 20, hide:
true);
565 ModBase(955, a * 5, hide:
false);
566 ModBase(953, a * 10, hide:
false);
567 ModBase(958, a * 5, hide:
false);
568 ModBase(956, a * 10, hide:
false);
569 ModBase(950, a * -5, hide:
false);
570 ModBase(960, a * -5, hide:
false);
571 ModBase(423, a, hide:
false);
574 ModBase(418, a * 100, hide:
false);
577 ModBase(956, a * 5, hide:
false);
578 ModBase(959, a * 5, hide:
false);
579 ModBase(423, a, hide:
false);
580 ModBase(424, a, hide:
false);
581 ModBase(421, a, hide:
false);
584 ModBase(954, a * 10, hide:
false);
585 ModBase(423, a, hide:
false);
586 ModBase(425, a, hide:
false);
587 ModBase(424, a, hide:
false);
588 ModBase(421, a, hide:
false);
591 ModBase(955, a * 5, hide:
false);
592 ModBase(953, a * 5, hide:
false);
595 ModBase(961, a * 5, hide:
false);
596 ModBase(953, a * 5, hide:
false);
597 ModBase(958, a * 5, hide:
false);
598 ModBase(956, a * 5, hide:
false);
599 ModBase(954, a * 5, hide:
false);
600 ModBase(957, a * 5, hide:
false);
601 ModBase(959, a * 5, hide:
false);
604 ModBase(962, a * 20, hide:
false);
607 ModBase(951, a * 15, hide:
false);
610 ModBase(952, a * -10, hide:
false);
611 ModBase(955, a * 20, hide:
false);
612 ModBase(964, a * 20, hide:
false);
615 ModBase(950, a / 40, hide:
false);
616 ModBase(952, a / 40, hide:
false);
617 ModBase(955, a / 40, hide:
false);
618 ModBase(953, a / 40, hide:
false);
619 ModBase(958, a / 40, hide:
false);
620 ModBase(956, a / 40, hide:
false);
621 ModBase(954, a / 40, hide:
false);
622 ModBase(959, a / 40, hide:
false);
623 ModBase(964, a / 40, hide:
false);
624 ModBase(961, a / 40, hide:
false);
627 ModBase(964, a * 20, hide:
false);
630 ModBase(963, a * 20, hide:
false);
633 ModBase(6020, a, hide:
false);
636 ModBase(950, a * -10, hide:
false);
637 ModBase(951, a * 5, hide:
false);
638 ModBase(961, a * 5, hide:
false);
639 ModBase(8793, a, hide:
false);
640 ModBase(6607, a, hide:
false);
643 ModBase(60, a * 15, hide:
false);
644 ModBase(79, a * 5, hide:
false);
645 ModBase(953, a * 3, hide:
false);
646 ModBase(961, a, hide:
false);
647 ModBase(960, a, hide:
false);
659 featRef[3] = (a - 7).ToString() ??
"";
665 array[0] = num2.ToString() ??
"";
666 featRef[1] = (a * 2).ToString() ??
"";
670 ModBase(73, -a * 5, hide:
false);
673 ModBase(73, a * 5, hide:
false);
676 ModBase(65, a * 3, hide:
false);
679 ModBase(65, -a * 3, hide:
false);
682 ModBase(73, a * 5, hide:
false);
685 ModBase(73, -a * 5, hide:
false);
688 ModBase(72, a * 3, hide:
false);
691 ModBase(72, -a * 3, hide:
false);
694 ModBase(300, a * 4, hide:
false);
697 ModBase(300, -a * 4, hide:
false);
700 ModBase(79, a * 5, hide:
false);
703 ModBase(79, -a * 5, hide:
false);
706 ModBase(70, a * 3, hide:
false);
709 ModBase(70, -a * 3, hide:
false);
712 ModBase(77, a * 5, hide:
false);
715 ModBase(77, -a * 5, hide:
false);
718 ModBase(307, a * 4, hide:
false);
721 ModBase(307, -a * 4, hide:
false);
724 ModBase(951, a * 5, hide:
false);
725 ModBase(950, -a * 5, hide:
false);
728 ModBase(951, -a * 5, hide:
false);
729 ModBase(950, a * 5, hide:
false);
732 ModBase(952, a * 5, hide:
false);
735 ModBase(952, -a * 5, hide:
false);
738 ModBase(960, a * 5, hide:
false);
739 ModBase(956, -a * 5, hide:
false);
742 ModBase(960, -a * 5, hide:
false);
743 ModBase(956, a * 5, hide:
false);
760 ModBase(404, -a * 10, hide:
false);
763 ModBase(77, -a * (4 + num / 5), hide:
false);
766 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
773 ModBase(73, a * (5 + num / 3), hide:
false);
774 ModBase(77, -a * (5 + num / 3), hide:
false);
777 ModBase(404, a * 10, hide:
false);
778 ModBase(401, a, hide:
false);
779 ModBase(79, a * (10 + num / 5), hide:
false);
786 ModBase(65, a * (12 + num), hide:
false);
787 ModBase(77, -a * (5 + num / 5), hide:
false);
794 ModBase(64, -a * (10 + num), hide:
false);
795 ModBase(67, a * (5 + num / 2), hide:
false);
798 ModBase(71, -a * (5 + num / 3), hide:
false);
799 ModBase(72, -a * (4 + num / 4), hide:
false);
800 ModBase(74, a * (6 + num / 2), hide:
false);
801 ModBase(75, a * (2 + num / 6), hide:
false);
804 ModBase(60, -a * 15, hide:
false);
805 ModBase(70, -a * (4 + num / 3), hide:
false);
808 ModBase(61, -a * 15, hide:
false);
809 ModBase(76, -a * (4 + num / 3), hide:
false);
812 ModBase(65, a * (15 + num / 2), hide:
false);
813 ModBase(79, -a * (10 + num / 5), hide:
false);
816 ModBase(77, -a * (3 + num / 4), hide:
false);
819 ModBase(961, a * 5, hide:
false);
822 ModBase(955, a * 20, hide:
false);
827 string text = base.source.GetText(
"textExtra");
830 string text2 = text.SplitNewline().TryGet(value - 1, 99);
831 if (!text2.IsEmpty())
834 string[] array2 = text2.Split(
',');
835 foreach (
string obj
in array2)
838 string text4 = obj.Replace(
";",
",");
839 if (text3.ToInt() < 0)
841 text4 = text4.Replace(
"+#1", text3);
843 text4 = text4.Replace(
"#1", text3);
859 if (value2.
source.id !=
id)
861 NoteElement(value2.
id, value2.
Value);
865 void ModAttribute(
int ele)
868 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
871 void ModBase(
int ele,
int _v,
bool hide)
877 if (!hide && _v != 0)
879 NoteElement(ele, _v);
897 void NoteElement(
int ele,
int a)
902 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
904 else if (row.
tag.Contains(
"flag"))
910 string @ref = ((a < 0) ?
"" :
"+") + a;
914 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num4, 1, 5));
915 Note(
"modValueRes".lang(row.
GetName(), @ref));
919 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 featSadCreature
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)