1using System.Collections.Generic;
236 public static readonly
int[]
IDS =
new int[115]
238 1211, 1640, 1636, 1635, 1634, 1633, 1632, 1631, 1630, 1629,
239 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1612,
240 1611, 1610, 1422, 1421, 1420, 1419, 1641, 1418, 1642, 1644,
241 1210, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208,
242 1209, 1659, 1657, 1656, 1655, 1654, 1653, 1652, 1651, 1650,
243 1649, 1648, 1647, 1646, 1645, 1643, 1417, 1658, 1415, 1235,
244 1236, 1237, 1238, 1239, 1300, 1305, 1315, 1320, 1234, 1325,
245 1335, 1340, 1345, 1350, 1355, 1400, 1401, 1402, 1403, 1330,
246 1404, 1233, 1231, 1416, 1213, 1214, 1215, 1216, 1217, 1218,
247 1219, 1220, 1232, 1221, 1223, 1212, 1224, 1225, 1226, 1227,
248 1228, 1229, 1230, 1222, 1405, 1310, 1407, 1406, 1410, 1411,
249 1412, 1413, 1409, 1408, 1414
254 public static List<string>
hints =
new List<string>();
256 public static string[]
featRef =
new string[5];
260 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
266 string[] array = base.source.GetText().SplitNewline();
267 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
275 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
279 return !base.IsGlobalElement;
282 public override Sprite
GetIcon(
string suffix =
"")
284 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
292 n.AddText(
"_bullet".lang() +
hint);
302 text = text +
hint.StripLastPun() +
", ";
304 return text.TrimEnd(
' ').TrimEnd(
',');
309 if (base.source.req.Length != 0)
312 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()))
322 if (base.source.req.Length != 0)
324 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());
339 int value = base.Value;
340 int A = Mathf.Abs(a);
341 int invert = ((a >= 0) ? 1 : (-1));
344 featRef[0] = a.ToString() ??
"";
345 featRef[1] = a.ToString() ??
"";
349 if (!
hint && a > 0 && chara !=
null)
356 ModBase(78, -a * 10, hide:
false);
359 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
362 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
365 ModBase(60, a * 4, hide:
false);
368 ModBase(61, a * 4, hide:
false);
371 ModBase(62, a * 4, hide:
false);
398 ModBase(79, a * 5, hide:
false);
401 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
404 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
407 ModBase(150, a * 2, hide:
false);
410 ModBase(210, a * 3, hide:
false);
411 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
414 ModBase(291, a * 4, hide:
false);
417 ModBase(100, a * 3, hide:
false);
420 ModBase(306, a * 4, hide:
false);
423 ModBase(78, a * 2, hide:
false);
426 ModBase(77, a * 2, hide:
false);
429 featRef[0] = (a * 10).ToString() ??
"";
432 featRef[0] = (a * 10).ToString() ??
"";
435 ModBase(78, a * 15, hide:
false);
438 featRef[0] = (a * 20).ToString() ??
"";
439 featRef[1] = (a * 5).ToString() ??
"";
442 featRef[0] = a.ToString() ??
"";
459 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
460 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
461 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
464 ModBase(60, A * 2 * invert, hide:
false);
465 ModBase(79, A * 3 * invert, hide:
false);
468 ModBase(64, a * 50, hide:
true);
469 ModBase(401, a, hide:
false);
472 ModBase(403, a * 20, hide:
true);
475 ModBase(955, a * 5, hide:
false);
476 ModBase(953, a * 10, hide:
false);
477 ModBase(958, a * 5, hide:
false);
478 ModBase(956, a * 10, hide:
false);
479 ModBase(950, a * -5, hide:
false);
482 ModBase(956, a * 5, hide:
false);
483 ModBase(959, a * 5, hide:
false);
484 ModBase(423, a, hide:
false);
485 ModBase(424, a, hide:
false);
486 ModBase(421, a, hide:
false);
489 ModBase(954, a * 10, hide:
false);
490 ModBase(423, a, hide:
false);
491 ModBase(425, a, hide:
false);
492 ModBase(424, a, hide:
false);
493 ModBase(421, a, hide:
false);
496 ModBase(955, a * 5, hide:
false);
497 ModBase(953, a * 5, hide:
false);
500 ModBase(961, a * 5, hide:
false);
501 ModBase(953, a * 5, hide:
false);
502 ModBase(958, a * 5, hide:
false);
503 ModBase(956, a * 5, hide:
false);
504 ModBase(954, a * 5, hide:
false);
505 ModBase(957, a * 5, hide:
false);
506 ModBase(959, a * 5, hide:
false);
509 ModBase(962, a * 20, hide:
false);
512 ModBase(951, a * 15, hide:
false);
515 ModBase(952, a * -10, hide:
false);
516 ModBase(955, a * 20, hide:
false);
517 ModBase(964, a * 20, hide:
false);
520 ModBase(950, a / 40, hide:
false);
521 ModBase(952, a / 40, hide:
false);
522 ModBase(955, a / 40, hide:
false);
523 ModBase(953, a / 40, hide:
false);
524 ModBase(958, a / 40, hide:
false);
525 ModBase(956, a / 40, hide:
false);
526 ModBase(954, a / 40, hide:
false);
527 ModBase(959, a / 40, hide:
false);
528 ModBase(964, a / 40, hide:
false);
529 ModBase(961, a / 40, hide:
false);
532 ModBase(964, a * 20, hide:
false);
535 ModBase(963, a * 20, hide:
false);
538 ModBase(6020, a, hide:
false);
541 ModBase(60, a * 15, hide:
false);
542 ModBase(79, a * 5, hide:
false);
543 ModBase(953, a * 3, hide:
false);
544 ModBase(961, a, hide:
false);
545 ModBase(960, a, hide:
false);
557 ModBase(65, a * 3, hide:
false);
560 ModBase(65, -a * 3, hide:
false);
563 ModBase(73, a * 5, hide:
false);
566 ModBase(73, -a * 5, hide:
false);
569 ModBase(72, a * 3, hide:
false);
572 ModBase(72, -a * 3, hide:
false);
575 ModBase(300, a * 4, hide:
false);
578 ModBase(300, -a * 4, hide:
false);
581 ModBase(79, a * 5, hide:
false);
584 ModBase(79, -a * 5, hide:
false);
587 ModBase(70, a * 3, hide:
false);
590 ModBase(70, -a * 3, hide:
false);
593 ModBase(77, a * 5, hide:
false);
596 ModBase(77, -a * 5, hide:
false);
599 ModBase(307, a * 4, hide:
false);
602 ModBase(307, -a * 4, hide:
false);
605 ModBase(951, a * 5, hide:
false);
606 ModBase(950, -a * 5, hide:
false);
609 ModBase(951, -a * 5, hide:
false);
610 ModBase(950, a * 5, hide:
false);
613 ModBase(952, a * 5, hide:
false);
616 ModBase(952, -a * 5, hide:
false);
619 ModBase(960, a * 5, hide:
false);
620 ModBase(956, -a * 5, hide:
false);
623 ModBase(960, -a * 5, hide:
false);
624 ModBase(956, a * 5, hide:
false);
641 ModBase(404, -a * 10, hide:
false);
644 ModBase(77, -a * (4 + num / 5), hide:
false);
647 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
654 ModBase(73, a * (5 + num / 3), hide:
false);
655 ModBase(77, -a * (5 + num / 3), hide:
false);
658 ModBase(404, a * 10, hide:
false);
659 ModBase(401, a, hide:
false);
660 ModBase(79, a * (10 + num / 5), hide:
false);
667 ModBase(65, a * (12 + num), hide:
false);
668 ModBase(77, -a * (5 + num / 5), hide:
false);
675 ModBase(64, -a * (10 + num), hide:
false);
676 ModBase(67, a * (5 + num / 2), hide:
false);
679 ModBase(71, -a * (5 + num / 3), hide:
false);
680 ModBase(72, -a * (4 + num / 4), hide:
false);
681 ModBase(74, a * (6 + num / 2), hide:
false);
682 ModBase(75, a * (2 + num / 6), hide:
false);
685 ModBase(60, -a * 15, hide:
false);
686 ModBase(70, -a * (4 + num / 3), hide:
false);
689 ModBase(61, -a * 15, hide:
false);
690 ModBase(76, -a * (4 + num / 3), hide:
false);
693 ModBase(65, a * (15 + num / 2), hide:
false);
694 ModBase(79, -a * (10 + num / 5), hide:
false);
697 ModBase(77, -a * (3 + num / 4), hide:
false);
700 ModBase(961, a * 5, hide:
false);
703 ModBase(955, a * 20, hide:
false);
708 string text = base.source.GetText(
"textExtra");
711 string text2 = text.SplitNewline().TryGet(value - 1, 99);
712 if (!text2.IsEmpty())
715 string[] array = text2.Split(
',');
716 for (
int i = 0; i < array.Length; i++)
718 string item = array[i].Replace(
"#1",
featRef[num2]);
734 if (value2.
source.id !=
id)
736 NoteElement(value2.
id, value2.
Value);
740 void ModAttribute(
int ele)
745 Debug.Log(((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert);
747 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
750 void ModBase(
int ele,
int _v,
bool hide)
756 if (!hide && _v != 0)
758 NoteElement(ele, _v);
776 void NoteElement(
int ele,
int a)
781 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
783 else if (row.
tag.Contains(
"flag"))
789 string @ref = ((a < 0) ?
"" :
"+") + a;
793 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num3, 1, 5));
794 Note(
"modValueRes".lang(row.
GetName(), @ref));
798 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 featMelilithCurse
const int featGod_element1
const int featExecutioner
const int featHeavyCasting
const int featMagicManner
const int featManaPrecision
const int featFastLearner
const int featGod_trickery1
const int featCosmicHorror
const int featEarthStrength
const int featGod_healing1
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)