1using System.Collections.Generic;
244 public static readonly
int[]
IDS =
new int[119]
246 1216, 1644, 1643, 1642, 1641, 1640, 1636, 1635, 1634, 1633,
247 1632, 1631, 1630, 1645, 1629, 1627, 1626, 1625, 1624, 1623,
248 1622, 1621, 1620, 1612, 1611, 1610, 1422, 1628, 1421, 1646,
249 1648, 1215, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207,
250 1208, 1209, 1210, 1647, 1211, 1214, 1659, 1658, 1657, 1656,
251 1655, 1654, 1653, 1652, 1651, 1650, 1649, 1212, 1420, 1213,
252 1418, 1241, 1242, 1243, 1300, 1305, 1310, 1315, 1320, 1325,
253 1335, 1340, 1345, 1350, 1355, 1400, 1401, 1402, 1403, 1404,
254 1405, 1406, 1240, 1407, 1239, 1237, 1419, 1218, 1219, 1220,
255 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230,
256 1217, 1231, 1232, 1233, 1234, 1235, 1236, 1238, 1408, 1330,
257 1410, 1411, 1412, 1413, 1414, 1415, 1417, 1416, 1409
262 public static List<string>
hints =
new List<string>();
264 public static string[]
featRef =
new string[5];
268 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
274 string[] array = base.source.GetText().SplitNewline();
275 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
283 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
287 return !base.IsGlobalElement;
290 public override Sprite
GetIcon(
string suffix =
"")
292 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
300 n.AddText(
"_bullet".lang() +
hint);
310 text = text +
hint.StripLastPun() +
", ";
312 return text.TrimEnd(
' ').TrimEnd(
',');
317 if (base.source.req.Length != 0)
320 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()))
330 if (base.source.req.Length != 0)
332 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());
347 int value = base.Value;
348 int A = Mathf.Abs(a);
349 int invert = ((a >= 0) ? 1 : (-1));
352 featRef[0] = a.ToString() ??
"";
353 featRef[1] = a.ToString() ??
"";
357 if (!
hint && a > 0 && chara !=
null)
364 ModBase(78, -a * 10, hide:
false);
367 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
370 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
373 ModBase(60, a * 4, hide:
false);
376 ModBase(61, a * 4, hide:
false);
379 ModBase(62, a * 4, hide:
false);
406 ModBase(79, a * 5, hide:
false);
409 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
412 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
415 ModBase(150, a * 2, hide:
false);
418 ModBase(210, a * 3, hide:
false);
419 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
422 ModBase(291, a * 4, hide:
false);
425 ModBase(100, a * 3, hide:
false);
428 ModBase(306, a * 4, hide:
false);
431 ModBase(78, a * 2, hide:
false);
434 ModBase(77, a * 2, hide:
false);
437 featRef[0] = (a * 10).ToString() ??
"";
440 featRef[0] = (a * 10).ToString() ??
"";
443 ModBase(78, a * 15, hide:
false);
446 featRef[0] = (a * 20).ToString() ??
"";
447 featRef[1] = (a * 5).ToString() ??
"";
450 featRef[0] = a.ToString() ??
"";
467 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
468 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
469 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
472 ModBase(60, A * 2 * invert, hide:
false);
473 ModBase(79, A * 3 * invert, hide:
false);
476 ModBase(64, a * 50, hide:
true);
477 ModBase(401, a, hide:
false);
480 ModBase(403, a * 20, hide:
true);
483 ModBase(955, a * 5, hide:
false);
484 ModBase(953, a * 10, hide:
false);
485 ModBase(958, a * 5, hide:
false);
486 ModBase(956, a * 10, hide:
false);
487 ModBase(950, a * -5, hide:
false);
490 ModBase(956, a * 5, hide:
false);
491 ModBase(959, a * 5, hide:
false);
492 ModBase(423, a, hide:
false);
493 ModBase(424, a, hide:
false);
494 ModBase(421, a, hide:
false);
497 ModBase(954, a * 10, hide:
false);
498 ModBase(423, a, hide:
false);
499 ModBase(425, a, hide:
false);
500 ModBase(424, a, hide:
false);
501 ModBase(421, a, hide:
false);
504 ModBase(955, a * 5, hide:
false);
505 ModBase(953, a * 5, hide:
false);
508 ModBase(961, a * 5, hide:
false);
509 ModBase(953, a * 5, hide:
false);
510 ModBase(958, a * 5, hide:
false);
511 ModBase(956, a * 5, hide:
false);
512 ModBase(954, a * 5, hide:
false);
513 ModBase(957, a * 5, hide:
false);
514 ModBase(959, a * 5, hide:
false);
517 ModBase(962, a * 20, hide:
false);
520 ModBase(951, a * 15, hide:
false);
523 ModBase(952, a * -10, hide:
false);
524 ModBase(955, a * 20, hide:
false);
525 ModBase(964, a * 20, hide:
false);
528 ModBase(950, a / 40, hide:
false);
529 ModBase(952, a / 40, hide:
false);
530 ModBase(955, a / 40, hide:
false);
531 ModBase(953, a / 40, hide:
false);
532 ModBase(958, a / 40, hide:
false);
533 ModBase(956, a / 40, hide:
false);
534 ModBase(954, a / 40, hide:
false);
535 ModBase(959, a / 40, hide:
false);
536 ModBase(964, a / 40, hide:
false);
537 ModBase(961, a / 40, hide:
false);
540 ModBase(964, a * 20, hide:
false);
543 ModBase(963, a * 20, hide:
false);
546 ModBase(6020, a, hide:
false);
549 ModBase(60, a * 15, hide:
false);
550 ModBase(79, a * 5, hide:
false);
551 ModBase(953, a * 3, hide:
false);
552 ModBase(961, a, hide:
false);
553 ModBase(960, a, hide:
false);
565 ModBase(73, -a * 5, hide:
false);
568 ModBase(73, a * 5, hide:
false);
571 ModBase(65, a * 3, hide:
false);
574 ModBase(65, -a * 3, hide:
false);
577 ModBase(73, a * 5, hide:
false);
580 ModBase(73, -a * 5, hide:
false);
583 ModBase(72, a * 3, hide:
false);
586 ModBase(72, -a * 3, hide:
false);
589 ModBase(300, a * 4, hide:
false);
592 ModBase(300, -a * 4, hide:
false);
595 ModBase(79, a * 5, hide:
false);
598 ModBase(79, -a * 5, hide:
false);
601 ModBase(70, a * 3, hide:
false);
604 ModBase(70, -a * 3, hide:
false);
607 ModBase(77, a * 5, hide:
false);
610 ModBase(77, -a * 5, hide:
false);
613 ModBase(307, a * 4, hide:
false);
616 ModBase(307, -a * 4, hide:
false);
619 ModBase(951, a * 5, hide:
false);
620 ModBase(950, -a * 5, hide:
false);
623 ModBase(951, -a * 5, hide:
false);
624 ModBase(950, a * 5, hide:
false);
627 ModBase(952, a * 5, hide:
false);
630 ModBase(952, -a * 5, hide:
false);
633 ModBase(960, a * 5, hide:
false);
634 ModBase(956, -a * 5, hide:
false);
637 ModBase(960, -a * 5, hide:
false);
638 ModBase(956, a * 5, hide:
false);
655 ModBase(404, -a * 10, hide:
false);
658 ModBase(77, -a * (4 + num / 5), hide:
false);
661 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
668 ModBase(73, a * (5 + num / 3), hide:
false);
669 ModBase(77, -a * (5 + num / 3), hide:
false);
672 ModBase(404, a * 10, hide:
false);
673 ModBase(401, a, hide:
false);
674 ModBase(79, a * (10 + num / 5), hide:
false);
681 ModBase(65, a * (12 + num), hide:
false);
682 ModBase(77, -a * (5 + num / 5), hide:
false);
689 ModBase(64, -a * (10 + num), hide:
false);
690 ModBase(67, a * (5 + num / 2), hide:
false);
693 ModBase(71, -a * (5 + num / 3), hide:
false);
694 ModBase(72, -a * (4 + num / 4), hide:
false);
695 ModBase(74, a * (6 + num / 2), hide:
false);
696 ModBase(75, a * (2 + num / 6), hide:
false);
699 ModBase(60, -a * 15, hide:
false);
700 ModBase(70, -a * (4 + num / 3), hide:
false);
703 ModBase(61, -a * 15, hide:
false);
704 ModBase(76, -a * (4 + num / 3), hide:
false);
707 ModBase(65, a * (15 + num / 2), hide:
false);
708 ModBase(79, -a * (10 + num / 5), hide:
false);
711 ModBase(77, -a * (3 + num / 4), hide:
false);
714 ModBase(961, a * 5, hide:
false);
717 ModBase(955, a * 20, hide:
false);
722 string text = base.source.GetText(
"textExtra");
725 string text2 = text.SplitNewline().TryGet(value - 1, 99);
726 if (!text2.IsEmpty())
729 string[] array = text2.Split(
',');
730 foreach (
string obj
in array)
734 if (text3.ToInt() < 0)
736 text4 = text4.Replace(
"+#1", text3);
738 text4 = text4.Replace(
"#1", text3);
754 if (value2.
source.id !=
id)
756 NoteElement(value2.
id, value2.
Value);
760 void ModAttribute(
int ele)
765 Debug.Log(((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert);
767 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
770 void ModBase(
int ele,
int _v,
bool hide)
776 if (!hide && _v != 0)
778 NoteElement(ele, _v);
796 void NoteElement(
int ele,
int a)
801 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
803 else if (row.
tag.Contains(
"flag"))
809 string @ref = ((a < 0) ?
"" :
"+") + a;
813 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num3, 1, 5));
814 Note(
"modValueRes".lang(row.
GetName(), @ref));
818 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 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)