1using System.Collections.Generic;
296 public static readonly
int[]
IDS =
new int[145]
298 1622, 1630, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1632,
299 1631, 1420, 1620, 1612, 1611, 1610, 1426, 1425, 1424, 1423,
300 1422, 1421, 1633, 1419, 1418, 1621, 1634, 1650, 1636, 1417,
301 1750, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655,
302 1654, 1653, 1652, 1651, 1649, 1648, 1647, 1646, 1645, 1644,
303 1643, 1642, 1641, 1640, 1635, 1416, 1245, 1414, 1233, 1234,
304 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244,
305 1246, 1232, 1247, 1249, 1250, 1251, 1415, 1270, 1271, 1272,
306 1273, 1274, 1275, 1276, 1290, 1300, 1248, 1231, 1230, 1229,
307 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
308 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
309 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1305,
310 1310, 1252, 1320, 1413, 1412, 1411, 1410, 1409, 1408, 1407,
311 1406, 1405, 1315, 1404, 1402, 1401, 1400, 1355, 1350, 1345,
312 1340, 1335, 1330, 1325, 1403
317 public static List<string>
hints =
new List<string>();
319 public static string[]
featRef =
new string[5];
323 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
329 string[] array = base.source.GetText().SplitNewline();
330 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
338 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
342 return !base.IsGlobalElement;
345 public override Sprite
GetIcon(
string suffix =
"")
347 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
355 n.AddText(
"_bullet".lang() +
hint);
365 text = text +
hint.StripLastPun() +
", ";
367 return text.TrimEnd(
' ').TrimEnd(
',');
372 if (base.source.req.Length != 0)
375 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()))
385 if (base.source.req.Length != 0)
387 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());
408 elinFeatApplyEventArgs.
SetData(a);
410 a = elinFeatApplyEventArgs.
data;
411 int value = base.Value;
412 int A = Mathf.Abs(a);
413 int invert = ((a >= 0) ? 1 : (-1));
416 featRef[0] = a.ToString() ??
"";
417 featRef[1] = a.ToString() ??
"";
421 if (!
hint && a > 0 && chara !=
null)
428 featRef[0] = (a * 25).ToString() ??
"";
431 ModBase(78, -a * 10, hide:
false);
434 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
437 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
440 ModBase(60, a * 4, hide:
false);
443 ModBase(61, a * 4, hide:
false);
446 ModBase(62, a * 4, hide:
false);
473 ModBase(79, a * 5, hide:
false);
476 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
479 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
482 ModBase(150, a * 2, hide:
false);
485 ModBase(210, a * 3, hide:
false);
486 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
489 ModBase(291, a * 4, hide:
false);
492 ModBase(100, a * 3, hide:
false);
495 ModBase(306, a * 4, hide:
false);
498 ModBase(78, a * 2, hide:
false);
501 ModBase(77, a * 2, hide:
false);
504 featRef[0] = (a * 10).ToString() ??
"";
507 featRef[0] = (a * 10).ToString() ??
"";
510 ModBase(78, a * 15, hide:
false);
513 featRef[0] = (a * 20).ToString() ??
"";
514 featRef[1] = (a * 5).ToString() ??
"";
517 featRef[0] = a.ToString() ??
"";
534 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
535 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
536 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
539 ModBase(60, A * 2 * invert, hide:
false);
540 ModBase(79, A * 3 * invert, hide:
false);
543 ModBase(64, a * 50, hide:
true);
544 ModBase(401, a, hide:
false);
547 ModBase(403, a * 20, hide:
true);
550 ModBase(955, a * 5, hide:
false);
551 ModBase(953, a * 10, hide:
false);
552 ModBase(958, a * 5, hide:
false);
553 ModBase(956, a * 10, hide:
false);
554 ModBase(950, a * -5, hide:
false);
555 ModBase(960, a * -5, hide:
false);
556 ModBase(423, a, hide:
false);
559 ModBase(418, a * 100, hide:
false);
562 ModBase(956, a * 5, hide:
false);
563 ModBase(959, a * 5, hide:
false);
564 ModBase(423, a, hide:
false);
565 ModBase(424, a, hide:
false);
566 ModBase(421, a, hide:
false);
569 ModBase(954, a * 10, hide:
false);
570 ModBase(423, a, hide:
false);
571 ModBase(425, a, hide:
false);
572 ModBase(424, a, hide:
false);
573 ModBase(421, a, hide:
false);
576 ModBase(955, a * 5, hide:
false);
577 ModBase(953, a * 5, hide:
false);
580 ModBase(961, a * 5, hide:
false);
581 ModBase(953, a * 5, hide:
false);
582 ModBase(958, a * 5, hide:
false);
583 ModBase(956, a * 5, hide:
false);
584 ModBase(954, a * 5, hide:
false);
585 ModBase(957, a * 5, hide:
false);
586 ModBase(959, a * 5, hide:
false);
589 ModBase(962, a * 20, hide:
false);
592 ModBase(951, a * 15, hide:
false);
595 ModBase(952, a * -10, hide:
false);
596 ModBase(955, a * 20, hide:
false);
597 ModBase(964, a * 20, hide:
false);
600 ModBase(950, a / 40, hide:
false);
601 ModBase(952, a / 40, hide:
false);
602 ModBase(955, a / 40, hide:
false);
603 ModBase(953, a / 40, hide:
false);
604 ModBase(958, a / 40, hide:
false);
605 ModBase(956, a / 40, hide:
false);
606 ModBase(954, a / 40, hide:
false);
607 ModBase(959, a / 40, hide:
false);
608 ModBase(964, a / 40, hide:
false);
609 ModBase(961, a / 40, hide:
false);
612 ModBase(964, a * 20, hide:
false);
615 ModBase(963, a * 20, hide:
false);
618 ModBase(6020, a, hide:
false);
621 ModBase(950, a * -10, hide:
false);
622 ModBase(951, a * 5, hide:
false);
623 ModBase(961, a * 5, hide:
false);
624 ModBase(8793, a, hide:
false);
625 ModBase(6607, a, hide:
false);
628 ModBase(60, a * 15, hide:
false);
629 ModBase(79, a * 5, hide:
false);
630 ModBase(953, a * 3, hide:
false);
631 ModBase(961, a, hide:
false);
632 ModBase(960, a, hide:
false);
644 featRef[3] = (a - 7).ToString() ??
"";
650 array[0] = num2.ToString() ??
"";
651 featRef[1] = (a * 2).ToString() ??
"";
655 ModBase(73, -a * 5, hide:
false);
658 ModBase(73, a * 5, hide:
false);
661 ModBase(65, a * 3, hide:
false);
664 ModBase(65, -a * 3, hide:
false);
667 ModBase(73, a * 5, hide:
false);
670 ModBase(73, -a * 5, hide:
false);
673 ModBase(72, a * 3, hide:
false);
676 ModBase(72, -a * 3, hide:
false);
679 ModBase(300, a * 4, hide:
false);
682 ModBase(300, -a * 4, hide:
false);
685 ModBase(79, a * 5, hide:
false);
688 ModBase(79, -a * 5, hide:
false);
691 ModBase(70, a * 3, hide:
false);
694 ModBase(70, -a * 3, hide:
false);
697 ModBase(77, a * 5, hide:
false);
700 ModBase(77, -a * 5, hide:
false);
703 ModBase(307, a * 4, hide:
false);
706 ModBase(307, -a * 4, hide:
false);
709 ModBase(951, a * 5, hide:
false);
710 ModBase(950, -a * 5, hide:
false);
713 ModBase(951, -a * 5, hide:
false);
714 ModBase(950, a * 5, hide:
false);
717 ModBase(952, a * 5, hide:
false);
720 ModBase(952, -a * 5, hide:
false);
723 ModBase(960, a * 5, hide:
false);
724 ModBase(956, -a * 5, hide:
false);
727 ModBase(960, -a * 5, hide:
false);
728 ModBase(956, a * 5, hide:
false);
745 ModBase(404, -a * 10, hide:
false);
748 ModBase(77, -a * (4 + num / 5), hide:
false);
751 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
758 ModBase(73, a * (5 + num / 3), hide:
false);
759 ModBase(77, -a * (5 + num / 3), hide:
false);
762 ModBase(404, a * 10, hide:
false);
763 ModBase(401, a, hide:
false);
764 ModBase(79, a * (10 + num / 5), hide:
false);
771 ModBase(65, a * (12 + num), hide:
false);
772 ModBase(77, -a * (5 + num / 5), hide:
false);
779 ModBase(64, -a * (10 + num), hide:
false);
780 ModBase(67, a * (5 + num / 2), hide:
false);
783 ModBase(71, -a * (5 + num / 3), hide:
false);
784 ModBase(72, -a * (4 + num / 4), hide:
false);
785 ModBase(74, a * (6 + num / 2), hide:
false);
786 ModBase(75, a * (2 + num / 6), hide:
false);
789 ModBase(60, -a * 15, hide:
false);
790 ModBase(70, -a * (4 + num / 3), hide:
false);
793 ModBase(61, -a * 15, hide:
false);
794 ModBase(76, -a * (4 + num / 3), hide:
false);
797 ModBase(65, a * (15 + num / 2), hide:
false);
798 ModBase(79, -a * (10 + num / 5), hide:
false);
801 ModBase(77, -a * (3 + num / 4), hide:
false);
804 ModBase(961, a * 5, hide:
false);
807 ModBase(955, a * 20, hide:
false);
812 string text = base.source.GetText(
"textExtra");
815 string text2 = text.SplitNewline().TryGet(value - 1, 99);
816 if (!text2.IsEmpty())
819 string[] array2 = text2.Split(
',');
820 foreach (
string obj
in array2)
824 if (text3.ToInt() < 0)
826 text4 = text4.Replace(
"+#1", text3);
828 text4 = text4.Replace(
"#1", text3);
844 if (value2.
source.id !=
id)
846 NoteElement(value2.
id, value2.
Value);
850 void ModAttribute(
int ele)
853 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
856 void ModBase(
int ele,
int _v,
bool hide)
862 if (!hide && _v != 0)
864 NoteElement(ele, _v);
882 void NoteElement(
int ele,
int a)
887 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
889 else if (row.
tag.Contains(
"flag"))
895 string @ref = ((a < 0) ?
"" :
"+") + a;
899 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num4, 1, 5));
900 Note(
"modValueRes".lang(row.
GetName(), @ref));
904 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)