1using System.Collections.Generic;
308 public static readonly
int[]
IDS =
new int[151]
310 1234, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1641, 1649,
311 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1650, 1658, 1640,
312 1635, 1612, 1620, 1621, 1622, 1623, 1624, 1625, 1636, 1626,
313 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1627, 1659, 1660,
314 1661, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1215, 1207,
315 1205, 1204, 1203, 1202, 1201, 1200, 1233, 1206, 1216, 1217,
316 1218, 1662, 1663, 1664, 1750, 1232, 1231, 1230, 1228, 1227,
317 1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1611, 1610,
318 1229, 1402, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415,
319 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1407,
320 1406, 1405, 1404, 1291, 1300, 1305, 1235, 1310, 1315, 1320,
321 1325, 1425, 1330, 1340, 1345, 1350, 1355, 1400, 1401, 1275,
322 1403, 1335, 1290, 1426, 1428, 1238, 1239, 1240, 1241, 1242,
323 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252,
324 1253, 1270, 1237, 1427, 1236, 1276, 1429, 1274, 1273, 1272,
330 public static List<string>
hints =
new List<string>();
332 public static string[]
featRef =
new string[5];
336 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
342 string[] array = base.source.GetText().SplitNewline();
343 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
351 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
355 return !base.IsGlobalElement;
358 public override Sprite
GetIcon(
string suffix =
"")
360 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
368 n.AddText(
"_bullet".lang() +
hint);
378 text = text +
hint.StripLastPun() +
", ";
380 return text.TrimEnd(
' ').TrimEnd(
',');
385 if (base.source.req.Length != 0)
388 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()))
398 if (base.source.req.Length != 0)
400 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());
421 elinFeatApplyEventArgs.
SetData(a);
423 a = elinFeatApplyEventArgs.
data;
424 int value = base.Value;
425 int A = Mathf.Abs(a);
426 int invert = ((a >= 0) ? 1 : (-1));
429 featRef[0] = a.ToString() ??
"";
430 featRef[1] = a.ToString() ??
"";
434 if (!
hint && a > 0 && chara !=
null)
441 featRef[0] = (a * 25).ToString() ??
"";
444 ModBase(78, -a * 10, hide:
false);
447 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
450 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
453 ModBase(60, a * 4, hide:
false);
456 ModBase(61, a * 4, hide:
false);
459 ModBase(62, a * 4, hide:
false);
486 ModBase(79, a * 5, hide:
false);
489 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
492 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
495 ModBase(150, a * 2, hide:
false);
498 ModBase(210, a * 3, hide:
false);
499 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
502 ModBase(291, a * 4, hide:
false);
505 ModBase(100, a * 3, hide:
false);
508 ModBase(306, a * 4, hide:
false);
511 ModBase(78, a * 2, hide:
false);
514 ModBase(77, a * 2, hide:
false);
517 featRef[0] = (a * 10).ToString() ??
"";
520 featRef[0] = (a * 10).ToString() ??
"";
523 ModBase(78, a * 15, hide:
false);
526 featRef[0] = (a * 20).ToString() ??
"";
527 featRef[1] = (a * 5).ToString() ??
"";
530 featRef[0] = a.ToString() ??
"";
547 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
548 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
549 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
552 ModBase(60, A * 2 * invert, hide:
false);
553 ModBase(79, A * 3 * invert, hide:
false);
556 ModBase(64, a * 50, hide:
true);
557 ModBase(401, a, hide:
false);
560 ModBase(403, a * 20, hide:
true);
563 ModBase(955, a * 5, hide:
false);
564 ModBase(953, a * 10, hide:
false);
565 ModBase(958, a * 5, hide:
false);
566 ModBase(956, a * 10, hide:
false);
567 ModBase(950, a * -5, hide:
false);
568 ModBase(960, a * -5, hide:
false);
569 ModBase(423, a, hide:
false);
572 ModBase(418, a * 100, hide:
false);
575 ModBase(956, a * 5, hide:
false);
576 ModBase(959, a * 5, hide:
false);
577 ModBase(423, a, hide:
false);
578 ModBase(424, a, hide:
false);
579 ModBase(421, a, hide:
false);
582 ModBase(954, a * 10, hide:
false);
583 ModBase(423, a, hide:
false);
584 ModBase(425, a, hide:
false);
585 ModBase(424, a, hide:
false);
586 ModBase(421, a, hide:
false);
589 ModBase(955, a * 5, hide:
false);
590 ModBase(953, a * 5, hide:
false);
593 ModBase(961, a * 5, hide:
false);
594 ModBase(953, a * 5, hide:
false);
595 ModBase(958, a * 5, hide:
false);
596 ModBase(956, a * 5, hide:
false);
597 ModBase(954, a * 5, hide:
false);
598 ModBase(957, a * 5, hide:
false);
599 ModBase(959, a * 5, hide:
false);
602 ModBase(962, a * 20, hide:
false);
605 ModBase(951, a * 15, hide:
false);
608 ModBase(952, a * -10, hide:
false);
609 ModBase(955, a * 20, hide:
false);
610 ModBase(964, a * 20, hide:
false);
613 ModBase(950, a / 40, hide:
false);
614 ModBase(952, a / 40, hide:
false);
615 ModBase(955, a / 40, hide:
false);
616 ModBase(953, a / 40, hide:
false);
617 ModBase(958, a / 40, hide:
false);
618 ModBase(956, a / 40, hide:
false);
619 ModBase(954, a / 40, hide:
false);
620 ModBase(959, a / 40, hide:
false);
621 ModBase(964, a / 40, hide:
false);
622 ModBase(961, a / 40, hide:
false);
625 ModBase(964, a * 20, hide:
false);
628 ModBase(963, a * 20, hide:
false);
631 ModBase(6020, a, hide:
false);
634 ModBase(950, a * -10, hide:
false);
635 ModBase(951, a * 5, hide:
false);
636 ModBase(961, a * 5, hide:
false);
637 ModBase(8793, a, hide:
false);
638 ModBase(6607, a, hide:
false);
641 ModBase(60, a * 15, hide:
false);
642 ModBase(79, a * 5, hide:
false);
643 ModBase(953, a * 3, hide:
false);
644 ModBase(961, a, hide:
false);
645 ModBase(960, a, hide:
false);
657 featRef[3] = (a - 7).ToString() ??
"";
663 array[0] = num2.ToString() ??
"";
664 featRef[1] = (a * 2).ToString() ??
"";
668 ModBase(73, -a * 5, hide:
false);
671 ModBase(73, a * 5, hide:
false);
674 ModBase(65, a * 3, hide:
false);
677 ModBase(65, -a * 3, hide:
false);
680 ModBase(73, a * 5, hide:
false);
683 ModBase(73, -a * 5, hide:
false);
686 ModBase(72, a * 3, hide:
false);
689 ModBase(72, -a * 3, hide:
false);
692 ModBase(300, a * 4, hide:
false);
695 ModBase(300, -a * 4, hide:
false);
698 ModBase(79, a * 5, hide:
false);
701 ModBase(79, -a * 5, hide:
false);
704 ModBase(70, a * 3, hide:
false);
707 ModBase(70, -a * 3, hide:
false);
710 ModBase(77, a * 5, hide:
false);
713 ModBase(77, -a * 5, hide:
false);
716 ModBase(307, a * 4, hide:
false);
719 ModBase(307, -a * 4, hide:
false);
722 ModBase(951, a * 5, hide:
false);
723 ModBase(950, -a * 5, hide:
false);
726 ModBase(951, -a * 5, hide:
false);
727 ModBase(950, a * 5, hide:
false);
730 ModBase(952, a * 5, hide:
false);
733 ModBase(952, -a * 5, hide:
false);
736 ModBase(960, a * 5, hide:
false);
737 ModBase(956, -a * 5, hide:
false);
740 ModBase(960, -a * 5, hide:
false);
741 ModBase(956, a * 5, hide:
false);
758 ModBase(404, -a * 10, hide:
false);
761 ModBase(77, -a * (4 + num / 5), hide:
false);
764 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
771 ModBase(73, a * (5 + num / 3), hide:
false);
772 ModBase(77, -a * (5 + num / 3), hide:
false);
775 ModBase(404, a * 10, hide:
false);
776 ModBase(401, a, hide:
false);
777 ModBase(79, a * (10 + num / 5), hide:
false);
784 ModBase(65, a * (12 + num), hide:
false);
785 ModBase(77, -a * (5 + num / 5), hide:
false);
792 ModBase(64, -a * (10 + num), hide:
false);
793 ModBase(67, a * (5 + num / 2), hide:
false);
796 ModBase(71, -a * (5 + num / 3), hide:
false);
797 ModBase(72, -a * (4 + num / 4), hide:
false);
798 ModBase(74, a * (6 + num / 2), hide:
false);
799 ModBase(75, a * (2 + num / 6), hide:
false);
802 ModBase(60, -a * 15, hide:
false);
803 ModBase(70, -a * (4 + num / 3), hide:
false);
806 ModBase(61, -a * 15, hide:
false);
807 ModBase(76, -a * (4 + num / 3), hide:
false);
810 ModBase(65, a * (15 + num / 2), hide:
false);
811 ModBase(79, -a * (10 + num / 5), hide:
false);
814 ModBase(77, -a * (3 + num / 4), hide:
false);
817 ModBase(961, a * 5, hide:
false);
820 ModBase(955, a * 20, hide:
false);
825 string text = base.source.GetText(
"textExtra");
828 string text2 = text.SplitNewline().TryGet(value - 1, 99);
829 if (!text2.IsEmpty())
832 string[] array2 = text2.Split(
',');
833 foreach (
string obj
in array2)
836 string text4 = obj.Replace(
";",
",");
837 if (text3.ToInt() < 0)
839 text4 = text4.Replace(
"+#1", text3);
841 text4 = text4.Replace(
"#1", text3);
857 if (value2.
source.id !=
id)
859 NoteElement(value2.
id, value2.
Value);
863 void ModAttribute(
int ele)
866 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
869 void ModBase(
int ele,
int _v,
bool hide)
875 if (!hide && _v != 0)
877 NoteElement(ele, _v);
895 void NoteElement(
int ele,
int a)
900 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
902 else if (row.
tag.Contains(
"flag"))
908 string @ref = ((a < 0) ?
"" :
"+") + a;
912 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num4, 1, 5));
913 Note(
"modValueRes".lang(row.
GetName(), @ref));
917 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)