1using System.Collections.Generic;
266 public static readonly
int[]
IDS =
new int[130]
268 1621, 1622, 1623, 1624, 1629, 1626, 1627, 1628, 1630, 1625,
269 1620, 1414, 1611, 1610, 1422, 1421, 1420, 1419, 1418, 1417,
270 1416, 1415, 1631, 1413, 1612, 1632, 1648, 1634, 1412, 1661,
271 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652, 1633,
272 1651, 1649, 1647, 1646, 1645, 1644, 1643, 1642, 1641, 1640,
273 1636, 1635, 1650, 1411, 1231, 1409, 1229, 1230, 1232, 1233,
274 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1410,
275 1244, 1245, 1246, 1247, 1248, 1249, 1270, 1271, 1290, 1300,
276 1305, 1228, 1310, 1227, 1225, 1200, 1201, 1202, 1203, 1204,
277 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214,
278 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224,
279 1226, 1315, 1243, 1325, 1406, 1405, 1404, 1403, 1402, 1401,
280 1407, 1400, 1320, 1350, 1345, 1340, 1335, 1330, 1355, 1408
285 public static List<string>
hints =
new List<string>();
287 public static string[]
featRef =
new string[5];
291 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
297 string[] array = base.source.GetText().SplitNewline();
298 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
306 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
310 return !base.IsGlobalElement;
313 public override Sprite
GetIcon(
string suffix =
"")
315 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
323 n.AddText(
"_bullet".lang() +
hint);
333 text = text +
hint.StripLastPun() +
", ";
335 return text.TrimEnd(
' ').TrimEnd(
',');
340 if (base.source.req.Length != 0)
343 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()))
353 if (base.source.req.Length != 0)
355 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());
370 int value = base.Value;
371 int A = Mathf.Abs(a);
372 int invert = ((a >= 0) ? 1 : (-1));
375 featRef[0] = a.ToString() ??
"";
376 featRef[1] = a.ToString() ??
"";
380 if (!
hint && a > 0 && chara !=
null)
387 featRef[0] = (a * 25).ToString() ??
"";
390 ModBase(78, -a * 10, hide:
false);
393 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
396 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
399 ModBase(60, a * 4, hide:
false);
402 ModBase(61, a * 4, hide:
false);
405 ModBase(62, a * 4, hide:
false);
432 ModBase(79, a * 5, hide:
false);
435 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
438 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
441 ModBase(150, a * 2, hide:
false);
444 ModBase(210, a * 3, hide:
false);
445 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
448 ModBase(291, a * 4, hide:
false);
451 ModBase(100, a * 3, hide:
false);
454 ModBase(306, a * 4, hide:
false);
457 ModBase(78, a * 2, hide:
false);
460 ModBase(77, a * 2, hide:
false);
463 featRef[0] = (a * 10).ToString() ??
"";
466 featRef[0] = (a * 10).ToString() ??
"";
469 ModBase(78, a * 15, hide:
false);
472 featRef[0] = (a * 20).ToString() ??
"";
473 featRef[1] = (a * 5).ToString() ??
"";
476 featRef[0] = a.ToString() ??
"";
493 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
494 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
495 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
498 ModBase(60, A * 2 * invert, hide:
false);
499 ModBase(79, A * 3 * invert, hide:
false);
502 ModBase(64, a * 50, hide:
true);
503 ModBase(401, a, hide:
false);
506 ModBase(403, a * 20, hide:
true);
509 ModBase(955, a * 5, hide:
false);
510 ModBase(953, a * 10, hide:
false);
511 ModBase(958, a * 5, hide:
false);
512 ModBase(956, a * 10, hide:
false);
513 ModBase(950, a * -5, hide:
false);
516 ModBase(418, a * 100, hide:
false);
519 ModBase(956, a * 5, hide:
false);
520 ModBase(959, a * 5, hide:
false);
521 ModBase(423, a, hide:
false);
522 ModBase(424, a, hide:
false);
523 ModBase(421, a, hide:
false);
526 ModBase(954, a * 10, hide:
false);
527 ModBase(423, a, hide:
false);
528 ModBase(425, a, hide:
false);
529 ModBase(424, a, hide:
false);
530 ModBase(421, a, hide:
false);
533 ModBase(955, a * 5, hide:
false);
534 ModBase(953, a * 5, hide:
false);
537 ModBase(961, a * 5, hide:
false);
538 ModBase(953, a * 5, hide:
false);
539 ModBase(958, a * 5, hide:
false);
540 ModBase(956, a * 5, hide:
false);
541 ModBase(954, a * 5, hide:
false);
542 ModBase(957, a * 5, hide:
false);
543 ModBase(959, a * 5, hide:
false);
546 ModBase(962, a * 20, hide:
false);
549 ModBase(951, a * 15, hide:
false);
552 ModBase(952, a * -10, hide:
false);
553 ModBase(955, a * 20, hide:
false);
554 ModBase(964, a * 20, hide:
false);
557 ModBase(950, a / 40, hide:
false);
558 ModBase(952, a / 40, hide:
false);
559 ModBase(955, a / 40, hide:
false);
560 ModBase(953, a / 40, hide:
false);
561 ModBase(958, a / 40, hide:
false);
562 ModBase(956, a / 40, hide:
false);
563 ModBase(954, a / 40, hide:
false);
564 ModBase(959, a / 40, hide:
false);
565 ModBase(964, a / 40, hide:
false);
566 ModBase(961, a / 40, hide:
false);
569 ModBase(964, a * 20, hide:
false);
572 ModBase(963, a * 20, hide:
false);
575 ModBase(6020, a, hide:
false);
578 ModBase(60, a * 15, hide:
false);
579 ModBase(79, a * 5, hide:
false);
580 ModBase(953, a * 3, hide:
false);
581 ModBase(961, a, hide:
false);
582 ModBase(960, a, hide:
false);
594 ModBase(73, -a * 5, hide:
false);
597 ModBase(73, a * 5, hide:
false);
600 ModBase(65, a * 3, hide:
false);
603 ModBase(65, -a * 3, hide:
false);
606 ModBase(73, a * 5, hide:
false);
609 ModBase(73, -a * 5, hide:
false);
612 ModBase(72, a * 3, hide:
false);
615 ModBase(72, -a * 3, hide:
false);
618 ModBase(300, a * 4, hide:
false);
621 ModBase(300, -a * 4, hide:
false);
624 ModBase(79, a * 5, hide:
false);
627 ModBase(79, -a * 5, hide:
false);
630 ModBase(70, a * 3, hide:
false);
633 ModBase(70, -a * 3, hide:
false);
636 ModBase(77, a * 5, hide:
false);
639 ModBase(77, -a * 5, hide:
false);
642 ModBase(307, a * 4, hide:
false);
645 ModBase(307, -a * 4, hide:
false);
648 ModBase(951, a * 5, hide:
false);
649 ModBase(950, -a * 5, hide:
false);
652 ModBase(951, -a * 5, hide:
false);
653 ModBase(950, a * 5, hide:
false);
656 ModBase(952, a * 5, hide:
false);
659 ModBase(952, -a * 5, hide:
false);
662 ModBase(960, a * 5, hide:
false);
663 ModBase(956, -a * 5, hide:
false);
666 ModBase(960, -a * 5, hide:
false);
667 ModBase(956, a * 5, hide:
false);
684 ModBase(404, -a * 10, hide:
false);
687 ModBase(77, -a * (4 + num / 5), hide:
false);
690 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
697 ModBase(73, a * (5 + num / 3), hide:
false);
698 ModBase(77, -a * (5 + num / 3), hide:
false);
701 ModBase(404, a * 10, hide:
false);
702 ModBase(401, a, hide:
false);
703 ModBase(79, a * (10 + num / 5), hide:
false);
710 ModBase(65, a * (12 + num), hide:
false);
711 ModBase(77, -a * (5 + num / 5), hide:
false);
718 ModBase(64, -a * (10 + num), hide:
false);
719 ModBase(67, a * (5 + num / 2), hide:
false);
722 ModBase(71, -a * (5 + num / 3), hide:
false);
723 ModBase(72, -a * (4 + num / 4), hide:
false);
724 ModBase(74, a * (6 + num / 2), hide:
false);
725 ModBase(75, a * (2 + num / 6), hide:
false);
728 ModBase(60, -a * 15, hide:
false);
729 ModBase(70, -a * (4 + num / 3), hide:
false);
732 ModBase(61, -a * 15, hide:
false);
733 ModBase(76, -a * (4 + num / 3), hide:
false);
736 ModBase(65, a * (15 + num / 2), hide:
false);
737 ModBase(79, -a * (10 + num / 5), hide:
false);
740 ModBase(77, -a * (3 + num / 4), hide:
false);
743 ModBase(961, a * 5, hide:
false);
746 ModBase(955, a * 20, hide:
false);
751 string text = base.source.GetText(
"textExtra");
754 string text2 = text.SplitNewline().TryGet(value - 1, 99);
755 if (!text2.IsEmpty())
758 string[] array = text2.Split(
',');
759 foreach (
string obj
in array)
763 if (text3.ToInt() < 0)
765 text4 = text4.Replace(
"+#1", text3);
767 text4 = text4.Replace(
"#1", text3);
783 if (value2.
source.id !=
id)
785 NoteElement(value2.
id, value2.
Value);
789 void ModAttribute(
int ele)
792 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
795 void ModBase(
int ele,
int _v,
bool hide)
801 if (!hide && _v != 0)
803 NoteElement(ele, _v);
821 void NoteElement(
int ele,
int a)
826 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
828 else if (row.
tag.Contains(
"flag"))
834 string @ref = ((a < 0) ?
"" :
"+") + a;
838 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num3, 1, 5));
839 Note(
"modValueRes".lang(row.
GetName(), @ref));
843 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)