1using System.Collections.Generic;
262 public static readonly
int[]
IDS =
new int[128]
264 1222, 1649, 1648, 1647, 1646, 1645, 1644, 1643, 1642, 1641,
265 1640, 1636, 1635, 1634, 1650, 1633, 1631, 1630, 1629, 1628,
266 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1612, 1632,
267 1651, 1652, 1653, 1221, 1200, 1201, 1202, 1203, 1204, 1205,
268 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
269 1216, 1217, 1219, 1220, 1661, 1660, 1659, 1658, 1657, 1656,
270 1655, 1654, 1611, 1610, 1218, 1340, 1407, 1408, 1409, 1410,
271 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420,
272 1421, 1406, 1405, 1404, 1403, 1271, 1300, 1305, 1310, 1315,
273 1320, 1325, 1422, 1330, 1247, 1345, 1350, 1355, 1400, 1401,
274 1402, 1335, 1270, 1246, 1244, 1230, 1229, 1228, 1227, 1226,
275 1225, 1224, 1245, 1231, 1232, 1233, 1248, 1235, 1236, 1243,
276 1242, 1237, 1223, 1241, 1240, 1239, 1238, 1234
281 public static List<string>
hints =
new List<string>();
283 public static string[]
featRef =
new string[5];
287 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
293 string[] array = base.source.GetText().SplitNewline();
294 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
302 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
306 return !base.IsGlobalElement;
309 public override Sprite
GetIcon(
string suffix =
"")
311 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
319 n.AddText(
"_bullet".lang() +
hint);
329 text = text +
hint.StripLastPun() +
", ";
331 return text.TrimEnd(
' ').TrimEnd(
',');
336 if (base.source.req.Length != 0)
339 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()))
349 if (base.source.req.Length != 0)
351 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());
366 int value = base.Value;
367 int A = Mathf.Abs(a);
368 int invert = ((a >= 0) ? 1 : (-1));
371 featRef[0] = a.ToString() ??
"";
372 featRef[1] = a.ToString() ??
"";
376 if (!
hint && a > 0 && chara !=
null)
383 featRef[0] = (a * 25).ToString() ??
"";
386 ModBase(78, -a * 10, hide:
false);
389 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
392 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
395 ModBase(60, a * 4, hide:
false);
398 ModBase(61, a * 4, hide:
false);
401 ModBase(62, a * 4, hide:
false);
428 ModBase(79, a * 5, hide:
false);
431 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
434 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
437 ModBase(150, a * 2, hide:
false);
440 ModBase(210, a * 3, hide:
false);
441 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
444 ModBase(291, a * 4, hide:
false);
447 ModBase(100, a * 3, hide:
false);
450 ModBase(306, a * 4, hide:
false);
453 ModBase(78, a * 2, hide:
false);
456 ModBase(77, a * 2, hide:
false);
459 featRef[0] = (a * 10).ToString() ??
"";
462 featRef[0] = (a * 10).ToString() ??
"";
465 ModBase(78, a * 15, hide:
false);
468 featRef[0] = (a * 20).ToString() ??
"";
469 featRef[1] = (a * 5).ToString() ??
"";
472 featRef[0] = a.ToString() ??
"";
489 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
490 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
491 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
494 ModBase(60, A * 2 * invert, hide:
false);
495 ModBase(79, A * 3 * invert, hide:
false);
498 ModBase(64, a * 50, hide:
true);
499 ModBase(401, a, hide:
false);
502 ModBase(403, a * 20, hide:
true);
505 ModBase(955, a * 5, hide:
false);
506 ModBase(953, a * 10, hide:
false);
507 ModBase(958, a * 5, hide:
false);
508 ModBase(956, a * 10, hide:
false);
509 ModBase(950, a * -5, hide:
false);
512 ModBase(956, a * 5, hide:
false);
513 ModBase(959, a * 5, hide:
false);
514 ModBase(423, a, hide:
false);
515 ModBase(424, a, hide:
false);
516 ModBase(421, a, hide:
false);
519 ModBase(954, a * 10, hide:
false);
520 ModBase(423, a, hide:
false);
521 ModBase(425, a, hide:
false);
522 ModBase(424, a, hide:
false);
523 ModBase(421, a, hide:
false);
526 ModBase(955, a * 5, hide:
false);
527 ModBase(953, a * 5, hide:
false);
530 ModBase(961, a * 5, hide:
false);
531 ModBase(953, a * 5, hide:
false);
532 ModBase(958, a * 5, hide:
false);
533 ModBase(956, a * 5, hide:
false);
534 ModBase(954, a * 5, hide:
false);
535 ModBase(957, a * 5, hide:
false);
536 ModBase(959, a * 5, hide:
false);
539 ModBase(962, a * 20, hide:
false);
542 ModBase(951, a * 15, hide:
false);
545 ModBase(952, a * -10, hide:
false);
546 ModBase(955, a * 20, hide:
false);
547 ModBase(964, a * 20, hide:
false);
550 ModBase(950, a / 40, hide:
false);
551 ModBase(952, a / 40, hide:
false);
552 ModBase(955, a / 40, hide:
false);
553 ModBase(953, a / 40, hide:
false);
554 ModBase(958, a / 40, hide:
false);
555 ModBase(956, a / 40, hide:
false);
556 ModBase(954, a / 40, hide:
false);
557 ModBase(959, a / 40, hide:
false);
558 ModBase(964, a / 40, hide:
false);
559 ModBase(961, a / 40, hide:
false);
562 ModBase(964, a * 20, hide:
false);
565 ModBase(963, a * 20, hide:
false);
568 ModBase(6020, a, hide:
false);
571 ModBase(60, a * 15, hide:
false);
572 ModBase(79, a * 5, hide:
false);
573 ModBase(953, a * 3, hide:
false);
574 ModBase(961, a, hide:
false);
575 ModBase(960, a, hide:
false);
587 ModBase(73, -a * 5, hide:
false);
590 ModBase(73, a * 5, hide:
false);
593 ModBase(65, a * 3, hide:
false);
596 ModBase(65, -a * 3, hide:
false);
599 ModBase(73, a * 5, hide:
false);
602 ModBase(73, -a * 5, hide:
false);
605 ModBase(72, a * 3, hide:
false);
608 ModBase(72, -a * 3, hide:
false);
611 ModBase(300, a * 4, hide:
false);
614 ModBase(300, -a * 4, hide:
false);
617 ModBase(79, a * 5, hide:
false);
620 ModBase(79, -a * 5, hide:
false);
623 ModBase(70, a * 3, hide:
false);
626 ModBase(70, -a * 3, hide:
false);
629 ModBase(77, a * 5, hide:
false);
632 ModBase(77, -a * 5, hide:
false);
635 ModBase(307, a * 4, hide:
false);
638 ModBase(307, -a * 4, hide:
false);
641 ModBase(951, a * 5, hide:
false);
642 ModBase(950, -a * 5, hide:
false);
645 ModBase(951, -a * 5, hide:
false);
646 ModBase(950, a * 5, hide:
false);
649 ModBase(952, a * 5, hide:
false);
652 ModBase(952, -a * 5, hide:
false);
655 ModBase(960, a * 5, hide:
false);
656 ModBase(956, -a * 5, hide:
false);
659 ModBase(960, -a * 5, hide:
false);
660 ModBase(956, a * 5, hide:
false);
677 ModBase(404, -a * 10, hide:
false);
680 ModBase(77, -a * (4 + num / 5), hide:
false);
683 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
690 ModBase(73, a * (5 + num / 3), hide:
false);
691 ModBase(77, -a * (5 + num / 3), hide:
false);
694 ModBase(404, a * 10, hide:
false);
695 ModBase(401, a, hide:
false);
696 ModBase(79, a * (10 + num / 5), hide:
false);
703 ModBase(65, a * (12 + num), hide:
false);
704 ModBase(77, -a * (5 + num / 5), hide:
false);
711 ModBase(64, -a * (10 + num), hide:
false);
712 ModBase(67, a * (5 + num / 2), hide:
false);
715 ModBase(71, -a * (5 + num / 3), hide:
false);
716 ModBase(72, -a * (4 + num / 4), hide:
false);
717 ModBase(74, a * (6 + num / 2), hide:
false);
718 ModBase(75, a * (2 + num / 6), hide:
false);
721 ModBase(60, -a * 15, hide:
false);
722 ModBase(70, -a * (4 + num / 3), hide:
false);
725 ModBase(61, -a * 15, hide:
false);
726 ModBase(76, -a * (4 + num / 3), hide:
false);
729 ModBase(65, a * (15 + num / 2), hide:
false);
730 ModBase(79, -a * (10 + num / 5), hide:
false);
733 ModBase(77, -a * (3 + num / 4), hide:
false);
736 ModBase(961, a * 5, hide:
false);
739 ModBase(955, a * 20, hide:
false);
744 string text = base.source.GetText(
"textExtra");
747 string text2 = text.SplitNewline().TryGet(value - 1, 99);
748 if (!text2.IsEmpty())
751 string[] array = text2.Split(
',');
752 foreach (
string obj
in array)
756 if (text3.ToInt() < 0)
758 text4 = text4.Replace(
"+#1", text3);
760 text4 = text4.Replace(
"#1", text3);
776 if (value2.
source.id !=
id)
778 NoteElement(value2.
id, value2.
Value);
782 void ModAttribute(
int ele)
787 Debug.Log(((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert);
789 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
792 void ModBase(
int ele,
int _v,
bool hide)
798 if (!hide && _v != 0)
800 NoteElement(ele, _v);
818 void NoteElement(
int ele,
int a)
823 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
825 else if (row.
tag.Contains(
"flag"))
831 string @ref = ((a < 0) ?
"" :
"+") + a;
835 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num3, 1, 5));
836 Note(
"modValueRes".lang(row.
GetName(), @ref));
840 Note(
"modValue".lang(row.
GetName(), @ref));
void UnequipAll(int idSlot)
void AddRandomBodyPart(bool msg=false)
ElementContainer faithElements
static SourceManager sources
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 featGod_strife1
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)