1using System.Collections.Generic;
304 public static readonly
int[]
IDS =
new int[149]
306 1624, 1625, 1626, 1631, 1628, 1629, 1630, 1623, 1632, 1627,
307 1622, 1421, 1620, 1612, 1611, 1610, 1428, 1427, 1426, 1425,
308 1424, 1423, 1422, 1633, 1420, 1621, 1634, 1650, 1636, 1419,
309 1750, 1664, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656,
310 1655, 1635, 1654, 1652, 1651, 1649, 1648, 1647, 1646, 1645,
311 1644, 1643, 1642, 1641, 1640, 1653, 1418, 1345, 1416, 1233,
312 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243,
313 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1417,
314 1271, 1272, 1273, 1274, 1275, 1276, 1290, 1291, 1232, 1300,
315 1231, 1229, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207,
316 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217,
317 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227,
318 1228, 1230, 1305, 1270, 1315, 1414, 1413, 1412, 1411, 1410,
319 1409, 1408, 1407, 1406, 1310, 1405, 1404, 1403, 1402, 1401,
320 1400, 1355, 1350, 1340, 1335, 1330, 1325, 1320, 1415
325 public static List<string>
hints =
new List<string>();
327 public static string[]
featRef =
new string[5];
331 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
337 string[] array = base.source.GetText().SplitNewline();
338 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
346 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
350 return !base.IsGlobalElement;
353 public override Sprite
GetIcon(
string suffix =
"")
355 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
363 n.AddText(
"_bullet".lang() +
hint);
373 text = text +
hint.StripLastPun() +
", ";
375 return text.TrimEnd(
' ').TrimEnd(
',');
380 if (base.source.req.Length != 0)
383 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()))
393 if (base.source.req.Length != 0)
395 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());
416 elinFeatApplyEventArgs.
SetData(a);
418 a = elinFeatApplyEventArgs.
data;
419 int value = base.Value;
420 int A = Mathf.Abs(a);
421 int invert = ((a >= 0) ? 1 : (-1));
424 featRef[0] = a.ToString() ??
"";
425 featRef[1] = a.ToString() ??
"";
429 if (!
hint && a > 0 && chara !=
null)
436 featRef[0] = (a * 25).ToString() ??
"";
439 ModBase(78, -a * 10, hide:
false);
442 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
445 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
448 ModBase(60, a * 4, hide:
false);
451 ModBase(61, a * 4, hide:
false);
454 ModBase(62, a * 4, hide:
false);
481 ModBase(79, a * 5, hide:
false);
484 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
487 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
490 ModBase(150, a * 2, hide:
false);
493 ModBase(210, a * 3, hide:
false);
494 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
497 ModBase(291, a * 4, hide:
false);
500 ModBase(100, a * 3, hide:
false);
503 ModBase(306, a * 4, hide:
false);
506 ModBase(78, a * 2, hide:
false);
509 ModBase(77, a * 2, hide:
false);
512 featRef[0] = (a * 10).ToString() ??
"";
515 featRef[0] = (a * 10).ToString() ??
"";
518 ModBase(78, a * 15, hide:
false);
521 featRef[0] = (a * 20).ToString() ??
"";
522 featRef[1] = (a * 5).ToString() ??
"";
525 featRef[0] = a.ToString() ??
"";
542 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
543 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
544 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
547 ModBase(60, A * 2 * invert, hide:
false);
548 ModBase(79, A * 3 * invert, hide:
false);
551 ModBase(64, a * 50, hide:
true);
552 ModBase(401, a, hide:
false);
555 ModBase(403, a * 20, hide:
true);
558 ModBase(955, a * 5, hide:
false);
559 ModBase(953, a * 10, hide:
false);
560 ModBase(958, a * 5, hide:
false);
561 ModBase(956, a * 10, hide:
false);
562 ModBase(950, a * -5, hide:
false);
563 ModBase(960, a * -5, hide:
false);
564 ModBase(423, a, hide:
false);
567 ModBase(418, a * 100, hide:
false);
570 ModBase(956, a * 5, hide:
false);
571 ModBase(959, a * 5, hide:
false);
572 ModBase(423, a, hide:
false);
573 ModBase(424, a, hide:
false);
574 ModBase(421, a, hide:
false);
577 ModBase(954, a * 10, hide:
false);
578 ModBase(423, a, hide:
false);
579 ModBase(425, a, hide:
false);
580 ModBase(424, a, hide:
false);
581 ModBase(421, a, hide:
false);
584 ModBase(955, a * 5, hide:
false);
585 ModBase(953, a * 5, hide:
false);
588 ModBase(961, a * 5, hide:
false);
589 ModBase(953, a * 5, hide:
false);
590 ModBase(958, a * 5, hide:
false);
591 ModBase(956, a * 5, hide:
false);
592 ModBase(954, a * 5, hide:
false);
593 ModBase(957, a * 5, hide:
false);
594 ModBase(959, a * 5, hide:
false);
597 ModBase(962, a * 20, hide:
false);
600 ModBase(951, a * 15, hide:
false);
603 ModBase(952, a * -10, hide:
false);
604 ModBase(955, a * 20, hide:
false);
605 ModBase(964, a * 20, hide:
false);
608 ModBase(950, a / 40, hide:
false);
609 ModBase(952, a / 40, hide:
false);
610 ModBase(955, a / 40, hide:
false);
611 ModBase(953, a / 40, hide:
false);
612 ModBase(958, a / 40, hide:
false);
613 ModBase(956, a / 40, hide:
false);
614 ModBase(954, a / 40, hide:
false);
615 ModBase(959, a / 40, hide:
false);
616 ModBase(964, a / 40, hide:
false);
617 ModBase(961, a / 40, hide:
false);
620 ModBase(964, a * 20, hide:
false);
623 ModBase(963, a * 20, hide:
false);
626 ModBase(6020, a, hide:
false);
629 ModBase(950, a * -10, hide:
false);
630 ModBase(951, a * 5, hide:
false);
631 ModBase(961, a * 5, hide:
false);
632 ModBase(8793, a, hide:
false);
633 ModBase(6607, a, hide:
false);
636 ModBase(60, a * 15, hide:
false);
637 ModBase(79, a * 5, hide:
false);
638 ModBase(953, a * 3, hide:
false);
639 ModBase(961, a, hide:
false);
640 ModBase(960, a, hide:
false);
652 featRef[3] = (a - 7).ToString() ??
"";
658 array[0] = num2.ToString() ??
"";
659 featRef[1] = (a * 2).ToString() ??
"";
663 ModBase(73, -a * 5, hide:
false);
666 ModBase(73, a * 5, hide:
false);
669 ModBase(65, a * 3, hide:
false);
672 ModBase(65, -a * 3, hide:
false);
675 ModBase(73, a * 5, hide:
false);
678 ModBase(73, -a * 5, hide:
false);
681 ModBase(72, a * 3, hide:
false);
684 ModBase(72, -a * 3, hide:
false);
687 ModBase(300, a * 4, hide:
false);
690 ModBase(300, -a * 4, hide:
false);
693 ModBase(79, a * 5, hide:
false);
696 ModBase(79, -a * 5, hide:
false);
699 ModBase(70, a * 3, hide:
false);
702 ModBase(70, -a * 3, hide:
false);
705 ModBase(77, a * 5, hide:
false);
708 ModBase(77, -a * 5, hide:
false);
711 ModBase(307, a * 4, hide:
false);
714 ModBase(307, -a * 4, hide:
false);
717 ModBase(951, a * 5, hide:
false);
718 ModBase(950, -a * 5, hide:
false);
721 ModBase(951, -a * 5, hide:
false);
722 ModBase(950, a * 5, hide:
false);
725 ModBase(952, a * 5, hide:
false);
728 ModBase(952, -a * 5, hide:
false);
731 ModBase(960, a * 5, hide:
false);
732 ModBase(956, -a * 5, hide:
false);
735 ModBase(960, -a * 5, hide:
false);
736 ModBase(956, a * 5, hide:
false);
753 ModBase(404, -a * 10, hide:
false);
756 ModBase(77, -a * (4 + num / 5), hide:
false);
759 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
766 ModBase(73, a * (5 + num / 3), hide:
false);
767 ModBase(77, -a * (5 + num / 3), hide:
false);
770 ModBase(404, a * 10, hide:
false);
771 ModBase(401, a, hide:
false);
772 ModBase(79, a * (10 + num / 5), hide:
false);
779 ModBase(65, a * (12 + num), hide:
false);
780 ModBase(77, -a * (5 + num / 5), hide:
false);
787 ModBase(64, -a * (10 + num), hide:
false);
788 ModBase(67, a * (5 + num / 2), hide:
false);
791 ModBase(71, -a * (5 + num / 3), hide:
false);
792 ModBase(72, -a * (4 + num / 4), hide:
false);
793 ModBase(74, a * (6 + num / 2), hide:
false);
794 ModBase(75, a * (2 + num / 6), hide:
false);
797 ModBase(60, -a * 15, hide:
false);
798 ModBase(70, -a * (4 + num / 3), hide:
false);
801 ModBase(61, -a * 15, hide:
false);
802 ModBase(76, -a * (4 + num / 3), hide:
false);
805 ModBase(65, a * (15 + num / 2), hide:
false);
806 ModBase(79, -a * (10 + num / 5), hide:
false);
809 ModBase(77, -a * (3 + num / 4), hide:
false);
812 ModBase(961, a * 5, hide:
false);
815 ModBase(955, a * 20, hide:
false);
820 string text = base.source.GetText(
"textExtra");
823 string text2 = text.SplitNewline().TryGet(value - 1, 99);
824 if (!text2.IsEmpty())
827 string[] array2 = text2.Split(
',');
828 foreach (
string obj
in array2)
831 string text4 = obj.Replace(
";",
",");
832 if (text3.ToInt() < 0)
834 text4 = text4.Replace(
"+#1", text3);
836 text4 = text4.Replace(
"#1", text3);
852 if (value2.
source.id !=
id)
854 NoteElement(value2.
id, value2.
Value);
858 void ModAttribute(
int ele)
861 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
864 void ModBase(
int ele,
int _v,
bool hide)
870 if (!hide && _v != 0)
872 NoteElement(ele, _v);
890 void NoteElement(
int ele,
int a)
895 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
897 else if (row.
tag.Contains(
"flag"))
903 string @ref = ((a < 0) ?
"" :
"+") + a;
907 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num4, 1, 5));
908 Note(
"modValueRes".lang(row.
GetName(), @ref));
912 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)