1using System.Collections.Generic;
256 public static readonly
int[]
IDS =
new int[125]
258 1621, 1622, 1623, 1624, 1629, 1626, 1627, 1628, 1620, 1625,
259 1612, 1413, 1610, 1422, 1421, 1420, 1419, 1418, 1417, 1416,
260 1415, 1414, 1630, 1611, 1631, 1647, 1633, 1412, 1660, 1659,
261 1658, 1657, 1656, 1655, 1654, 1653, 1652, 1651, 1632, 1650,
262 1648, 1646, 1645, 1644, 1643, 1642, 1641, 1640, 1636, 1635,
263 1634, 1649, 1411, 1661, 1409, 1227, 1228, 1229, 1230, 1231,
264 1232, 1233, 1234, 1235, 1236, 1237, 1226, 1238, 1241, 1242,
265 1243, 1244, 1245, 1246, 1247, 1300, 1305, 1310, 1315, 1240,
266 1320, 1225, 1223, 1202, 1201, 1200, 1410, 1203, 1204, 1205,
267 1206, 1207, 1208, 1209, 1224, 1210, 1212, 1213, 1214, 1215,
268 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1211, 1325, 1239,
269 1335, 1404, 1403, 1402, 1401, 1400, 1355, 1330, 1406, 1407,
270 1408, 1350, 1345, 1340, 1405
275 public static List<string>
hints =
new List<string>();
277 public static string[]
featRef =
new string[5];
281 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
287 string[] array = base.source.GetText().SplitNewline();
288 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
296 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
300 return !base.IsGlobalElement;
303 public override Sprite
GetIcon(
string suffix =
"")
305 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
313 n.AddText(
"_bullet".lang() +
hint);
323 text = text +
hint.StripLastPun() +
", ";
325 return text.TrimEnd(
' ').TrimEnd(
',');
330 if (base.source.req.Length != 0)
333 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()))
343 if (base.source.req.Length != 0)
345 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());
360 int value = base.Value;
361 int A = Mathf.Abs(a);
362 int invert = ((a >= 0) ? 1 : (-1));
365 featRef[0] = a.ToString() ??
"";
366 featRef[1] = a.ToString() ??
"";
370 if (!
hint && a > 0 && chara !=
null)
377 featRef[0] = (a * 25).ToString() ??
"";
380 ModBase(78, -a * 10, hide:
false);
383 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
386 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
389 ModBase(60, a * 4, hide:
false);
392 ModBase(61, a * 4, hide:
false);
395 ModBase(62, a * 4, hide:
false);
422 ModBase(79, a * 5, hide:
false);
425 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
428 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
431 ModBase(150, a * 2, hide:
false);
434 ModBase(210, a * 3, hide:
false);
435 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
438 ModBase(291, a * 4, hide:
false);
441 ModBase(100, a * 3, hide:
false);
444 ModBase(306, a * 4, hide:
false);
447 ModBase(78, a * 2, hide:
false);
450 ModBase(77, a * 2, hide:
false);
453 featRef[0] = (a * 10).ToString() ??
"";
456 featRef[0] = (a * 10).ToString() ??
"";
459 ModBase(78, a * 15, hide:
false);
462 featRef[0] = (a * 20).ToString() ??
"";
463 featRef[1] = (a * 5).ToString() ??
"";
466 featRef[0] = a.ToString() ??
"";
483 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
484 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
485 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
488 ModBase(60, A * 2 * invert, hide:
false);
489 ModBase(79, A * 3 * invert, hide:
false);
492 ModBase(64, a * 50, hide:
true);
493 ModBase(401, a, hide:
false);
496 ModBase(403, a * 20, hide:
true);
499 ModBase(955, a * 5, hide:
false);
500 ModBase(953, a * 10, hide:
false);
501 ModBase(958, a * 5, hide:
false);
502 ModBase(956, a * 10, hide:
false);
503 ModBase(950, a * -5, hide:
false);
506 ModBase(956, a * 5, hide:
false);
507 ModBase(959, a * 5, hide:
false);
508 ModBase(423, a, hide:
false);
509 ModBase(424, a, hide:
false);
510 ModBase(421, a, hide:
false);
513 ModBase(954, a * 10, hide:
false);
514 ModBase(423, a, hide:
false);
515 ModBase(425, a, hide:
false);
516 ModBase(424, a, hide:
false);
517 ModBase(421, a, hide:
false);
520 ModBase(955, a * 5, hide:
false);
521 ModBase(953, a * 5, hide:
false);
524 ModBase(961, a * 5, hide:
false);
525 ModBase(953, a * 5, hide:
false);
526 ModBase(958, a * 5, hide:
false);
527 ModBase(956, a * 5, hide:
false);
528 ModBase(954, a * 5, hide:
false);
529 ModBase(957, a * 5, hide:
false);
530 ModBase(959, a * 5, hide:
false);
533 ModBase(962, a * 20, hide:
false);
536 ModBase(951, a * 15, hide:
false);
539 ModBase(952, a * -10, hide:
false);
540 ModBase(955, a * 20, hide:
false);
541 ModBase(964, a * 20, hide:
false);
544 ModBase(950, a / 40, hide:
false);
545 ModBase(952, a / 40, hide:
false);
546 ModBase(955, a / 40, hide:
false);
547 ModBase(953, a / 40, hide:
false);
548 ModBase(958, a / 40, hide:
false);
549 ModBase(956, a / 40, hide:
false);
550 ModBase(954, a / 40, hide:
false);
551 ModBase(959, a / 40, hide:
false);
552 ModBase(964, a / 40, hide:
false);
553 ModBase(961, a / 40, hide:
false);
556 ModBase(964, a * 20, hide:
false);
559 ModBase(963, a * 20, hide:
false);
562 ModBase(6020, a, hide:
false);
565 ModBase(60, a * 15, hide:
false);
566 ModBase(79, a * 5, hide:
false);
567 ModBase(953, a * 3, hide:
false);
568 ModBase(961, a, hide:
false);
569 ModBase(960, a, hide:
false);
581 ModBase(73, -a * 5, hide:
false);
584 ModBase(73, a * 5, hide:
false);
587 ModBase(65, a * 3, hide:
false);
590 ModBase(65, -a * 3, hide:
false);
593 ModBase(73, a * 5, hide:
false);
596 ModBase(73, -a * 5, hide:
false);
599 ModBase(72, a * 3, hide:
false);
602 ModBase(72, -a * 3, hide:
false);
605 ModBase(300, a * 4, hide:
false);
608 ModBase(300, -a * 4, hide:
false);
611 ModBase(79, a * 5, hide:
false);
614 ModBase(79, -a * 5, hide:
false);
617 ModBase(70, a * 3, hide:
false);
620 ModBase(70, -a * 3, hide:
false);
623 ModBase(77, a * 5, hide:
false);
626 ModBase(77, -a * 5, hide:
false);
629 ModBase(307, a * 4, hide:
false);
632 ModBase(307, -a * 4, hide:
false);
635 ModBase(951, a * 5, hide:
false);
636 ModBase(950, -a * 5, hide:
false);
639 ModBase(951, -a * 5, hide:
false);
640 ModBase(950, a * 5, hide:
false);
643 ModBase(952, a * 5, hide:
false);
646 ModBase(952, -a * 5, hide:
false);
649 ModBase(960, a * 5, hide:
false);
650 ModBase(956, -a * 5, hide:
false);
653 ModBase(960, -a * 5, hide:
false);
654 ModBase(956, a * 5, hide:
false);
671 ModBase(404, -a * 10, hide:
false);
674 ModBase(77, -a * (4 + num / 5), hide:
false);
677 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
684 ModBase(73, a * (5 + num / 3), hide:
false);
685 ModBase(77, -a * (5 + num / 3), hide:
false);
688 ModBase(404, a * 10, hide:
false);
689 ModBase(401, a, hide:
false);
690 ModBase(79, a * (10 + num / 5), hide:
false);
697 ModBase(65, a * (12 + num), hide:
false);
698 ModBase(77, -a * (5 + num / 5), hide:
false);
705 ModBase(64, -a * (10 + num), hide:
false);
706 ModBase(67, a * (5 + num / 2), hide:
false);
709 ModBase(71, -a * (5 + num / 3), hide:
false);
710 ModBase(72, -a * (4 + num / 4), hide:
false);
711 ModBase(74, a * (6 + num / 2), hide:
false);
712 ModBase(75, a * (2 + num / 6), hide:
false);
715 ModBase(60, -a * 15, hide:
false);
716 ModBase(70, -a * (4 + num / 3), hide:
false);
719 ModBase(61, -a * 15, hide:
false);
720 ModBase(76, -a * (4 + num / 3), hide:
false);
723 ModBase(65, a * (15 + num / 2), hide:
false);
724 ModBase(79, -a * (10 + num / 5), hide:
false);
727 ModBase(77, -a * (3 + num / 4), hide:
false);
730 ModBase(961, a * 5, hide:
false);
733 ModBase(955, a * 20, hide:
false);
738 string text = base.source.GetText(
"textExtra");
741 string text2 = text.SplitNewline().TryGet(value - 1, 99);
742 if (!text2.IsEmpty())
745 string[] array = text2.Split(
',');
746 foreach (
string obj
in array)
750 if (text3.ToInt() < 0)
752 text4 = text4.Replace(
"+#1", text3);
754 text4 = text4.Replace(
"#1", text3);
770 if (value2.
source.id !=
id)
772 NoteElement(value2.
id, value2.
Value);
776 void ModAttribute(
int ele)
781 Debug.Log(((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert);
783 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
786 void ModBase(
int ele,
int _v,
bool hide)
792 if (!hide && _v != 0)
794 NoteElement(ele, _v);
812 void NoteElement(
int ele,
int a)
817 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
819 else if (row.
tag.Contains(
"flag"))
825 string @ref = ((a < 0) ?
"" :
"+") + a;
829 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num3, 1, 5));
830 Note(
"modValueRes".lang(row.
GetName(), @ref));
834 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)