1using System.Collections.Generic;
312 public static readonly
int[]
IDS =
new int[153]
314 1235, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1642, 1650,
315 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1651, 1641, 1640,
316 1636, 1612, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627,
317 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1659, 1611,
318 1660, 1662, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1215,
319 1207, 1205, 1204, 1203, 1202, 1201, 1200, 1234, 1206, 1216,
320 1217, 1218, 1663, 1664, 1750, 1233, 1232, 1231, 1229, 1228,
321 1227, 1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1661,
322 1610, 1230, 1403, 1408, 1409, 1410, 1411, 1412, 1413, 1414,
323 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424,
324 1407, 1406, 1405, 1404, 1291, 1300, 1305, 1310, 1236, 1315,
325 1320, 1325, 1425, 1330, 1340, 1345, 1350, 1355, 1400, 1401,
326 1402, 1275, 1335, 1426, 1427, 1428, 1240, 1241, 1242, 1243,
327 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253,
328 1254, 1270, 1271, 1239, 1290, 1238, 1276, 1429, 1430, 1274,
334 public static List<string>
hints =
new List<string>();
336 public static string[]
featRef =
new string[5];
340 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
346 string[] array = base.source.GetText().SplitNewline();
347 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
355 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
359 return !base.IsGlobalElement;
362 public override Sprite
GetIcon(
string suffix =
"")
364 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
372 n.AddText(
"_bullet".lang() +
hint);
382 text = text +
hint.StripLastPun() +
", ";
384 return text.TrimEnd(
' ').TrimEnd(
',');
389 if (base.source.req.Length != 0)
392 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()))
402 if (base.source.req.Length != 0)
404 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());
425 elinFeatApplyEventArgs.
SetData(a);
427 a = elinFeatApplyEventArgs.
data;
428 int value = base.Value;
429 int A = Mathf.Abs(a);
430 int invert = ((a >= 0) ? 1 : (-1));
433 featRef[0] = a.ToString() ??
"";
434 featRef[1] = a.ToString() ??
"";
438 if (!
hint && a > 0 && chara !=
null)
445 featRef[0] = (a * 25).ToString() ??
"";
448 ModBase(78, -a * 10, hide:
false);
451 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
454 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
457 ModBase(60, a * 4, hide:
false);
460 ModBase(61, a * 4, hide:
false);
463 ModBase(62, a * 4, hide:
false);
490 ModBase(79, a * 5, hide:
false);
493 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
496 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
499 ModBase(150, a * 2, hide:
false);
502 ModBase(210, a * 3, hide:
false);
503 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
506 ModBase(291, a * 4, hide:
false);
509 ModBase(100, a * 3, hide:
false);
512 ModBase(306, a * 4, hide:
false);
515 ModBase(78, a * 2, hide:
false);
518 ModBase(77, a * 2, hide:
false);
521 featRef[0] = (a * 10).ToString() ??
"";
524 featRef[0] = (a * 10).ToString() ??
"";
527 ModBase(78, a * 15, hide:
false);
530 featRef[0] = (a * 20).ToString() ??
"";
531 featRef[1] = (a * 5).ToString() ??
"";
534 featRef[0] = a.ToString() ??
"";
551 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
552 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
553 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
556 ModBase(60, A * 2 * invert, hide:
false);
557 ModBase(79, A * 3 * invert, hide:
false);
560 ModBase(64, a * 50, hide:
true);
561 ModBase(401, a, hide:
false);
564 ModBase(403, a * 20, hide:
true);
567 ModBase(955, a * 5, hide:
false);
568 ModBase(953, a * 10, hide:
false);
569 ModBase(958, a * 5, hide:
false);
570 ModBase(956, a * 10, hide:
false);
571 ModBase(950, a * -5, hide:
false);
572 ModBase(960, a * -5, hide:
false);
573 ModBase(423, a, hide:
false);
576 ModBase(418, a * 100, hide:
false);
579 ModBase(956, a * 5, hide:
false);
580 ModBase(959, a * 5, hide:
false);
581 ModBase(423, a, hide:
false);
582 ModBase(424, a, hide:
false);
583 ModBase(421, a, hide:
false);
586 ModBase(954, a * 10, hide:
false);
587 ModBase(423, a, hide:
false);
588 ModBase(425, a, hide:
false);
589 ModBase(424, a, hide:
false);
590 ModBase(421, a, hide:
false);
593 ModBase(955, a * 5, hide:
false);
594 ModBase(953, a * 5, hide:
false);
597 ModBase(961, a * 5, hide:
false);
598 ModBase(953, a * 5, hide:
false);
599 ModBase(958, a * 5, hide:
false);
600 ModBase(956, a * 5, hide:
false);
601 ModBase(954, a * 5, hide:
false);
602 ModBase(957, a * 5, hide:
false);
603 ModBase(959, a * 5, hide:
false);
606 ModBase(962, a * 20, hide:
false);
609 ModBase(951, a * 15, hide:
false);
612 ModBase(952, a * -10, hide:
false);
613 ModBase(955, a * 20, hide:
false);
614 ModBase(964, a * 20, hide:
false);
617 ModBase(950, a / 40, hide:
false);
618 ModBase(952, a / 40, hide:
false);
619 ModBase(955, a / 40, hide:
false);
620 ModBase(953, a / 40, hide:
false);
621 ModBase(958, a / 40, hide:
false);
622 ModBase(956, a / 40, hide:
false);
623 ModBase(954, a / 40, hide:
false);
624 ModBase(959, a / 40, hide:
false);
625 ModBase(964, a / 40, hide:
false);
626 ModBase(961, a / 40, hide:
false);
629 ModBase(964, a * 20, hide:
false);
632 ModBase(963, a * 20, hide:
false);
635 ModBase(6020, a, hide:
false);
638 ModBase(950, a * -10, hide:
false);
639 ModBase(951, a * 5, hide:
false);
640 ModBase(961, a * 5, hide:
false);
641 ModBase(8793, a, hide:
false);
642 ModBase(6607, a, hide:
false);
645 ModBase(60, a * 15, hide:
false);
646 ModBase(79, a * 5, hide:
false);
647 ModBase(953, a * 3, hide:
false);
648 ModBase(961, a, hide:
false);
649 ModBase(960, a, hide:
false);
661 featRef[3] = (a - 7).ToString() ??
"";
667 array[0] = num2.ToString() ??
"";
668 featRef[1] = (a * 2).ToString() ??
"";
672 ModBase(73, -a * 5, hide:
false);
675 ModBase(73, a * 5, hide:
false);
678 ModBase(65, a * 3, hide:
false);
681 ModBase(65, -a * 3, hide:
false);
684 ModBase(73, a * 5, hide:
false);
687 ModBase(73, -a * 5, hide:
false);
690 ModBase(72, a * 3, hide:
false);
693 ModBase(72, -a * 3, hide:
false);
696 ModBase(300, a * 4, hide:
false);
699 ModBase(300, -a * 4, hide:
false);
702 ModBase(79, a * 5, hide:
false);
705 ModBase(79, -a * 5, hide:
false);
708 ModBase(70, a * 3, hide:
false);
711 ModBase(70, -a * 3, hide:
false);
714 ModBase(77, a * 5, hide:
false);
717 ModBase(77, -a * 5, hide:
false);
720 ModBase(307, a * 4, hide:
false);
723 ModBase(307, -a * 4, hide:
false);
726 ModBase(951, a * 5, hide:
false);
727 ModBase(950, -a * 5, hide:
false);
730 ModBase(951, -a * 5, hide:
false);
731 ModBase(950, a * 5, hide:
false);
734 ModBase(952, a * 5, hide:
false);
737 ModBase(952, -a * 5, hide:
false);
740 ModBase(960, a * 5, hide:
false);
741 ModBase(956, -a * 5, hide:
false);
744 ModBase(960, -a * 5, hide:
false);
745 ModBase(956, a * 5, hide:
false);
762 ModBase(404, -a * 10, hide:
false);
765 ModBase(77, -a * (4 + num / 5), hide:
false);
768 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
775 ModBase(73, a * (5 + num / 3), hide:
false);
776 ModBase(77, -a * (5 + num / 3), hide:
false);
779 ModBase(404, a * 10, hide:
false);
780 ModBase(401, a, hide:
false);
781 ModBase(79, a * (10 + num / 5), hide:
false);
788 ModBase(65, a * (12 + num), hide:
false);
789 ModBase(77, -a * (5 + num / 5), hide:
false);
796 ModBase(64, -a * (10 + num), hide:
false);
797 ModBase(67, a * (5 + num / 2), hide:
false);
800 ModBase(71, -a * (5 + num / 3), hide:
false);
801 ModBase(72, -a * (4 + num / 4), hide:
false);
802 ModBase(74, a * (6 + num / 2), hide:
false);
803 ModBase(75, a * (2 + num / 6), hide:
false);
806 ModBase(60, -a * 15, hide:
false);
807 ModBase(70, -a * (4 + num / 3), hide:
false);
810 ModBase(61, -a * 15, hide:
false);
811 ModBase(76, -a * (4 + num / 3), hide:
false);
814 ModBase(65, a * (15 + num / 2), hide:
false);
815 ModBase(79, -a * (10 + num / 5), hide:
false);
818 ModBase(77, -a * (3 + num / 4), hide:
false);
821 ModBase(961, a * 5, hide:
false);
824 ModBase(955, a * 20, hide:
false);
829 string text = base.source.GetText(
"textExtra");
832 string text2 = text.SplitNewline().TryGet(value - 1, 99);
833 if (!text2.IsEmpty())
836 string[] array2 = text2.Split(
',');
837 foreach (
string obj
in array2)
840 string text4 = obj.Replace(
";",
",");
841 if (text3.ToInt() < 0)
843 text4 = text4.Replace(
"+#1", text3);
845 text4 = text4.Replace(
"#1", text3);
861 if (value2.
source.id !=
id)
863 NoteElement(value2.
id, value2.
Value);
867 void ModAttribute(
int ele)
870 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
873 void ModBase(
int ele,
int _v,
bool hide)
879 if (!hide && _v != 0)
881 NoteElement(ele, _v);
899 void NoteElement(
int ele,
int a)
904 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
906 else if (row.
tag.Contains(
"flag"))
912 string @ref = ((a < 0) ?
"" :
"+") + a;
916 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num4, 1, 5));
917 Note(
"modValueRes".lang(row.
GetName(), @ref));
921 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)