1using System.Collections.Generic;
238 public static readonly
int[]
IDS =
new int[116]
240 1213, 1641, 1640, 1636, 1635, 1634, 1633, 1632, 1631, 1630,
241 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620,
242 1612, 1611, 1610, 1422, 1421, 1420, 1642, 1643, 1644, 1645,
243 1212, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208,
244 1209, 1210, 1419, 1211, 1657, 1656, 1655, 1654, 1653, 1652,
245 1651, 1650, 1649, 1648, 1647, 1646, 1658, 1418, 1659, 1416,
246 1238, 1239, 1240, 1300, 1305, 1310, 1315, 1325, 1330, 1237,
247 1335, 1345, 1350, 1355, 1400, 1401, 1402, 1403, 1404, 1405,
248 1340, 1236, 1235, 1234, 1417, 1215, 1216, 1217, 1218, 1219,
249 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1214, 1227, 1228,
250 1229, 1230, 1231, 1232, 1233, 1406, 1407, 1320, 1409, 1410,
251 1411, 1412, 1415, 1408, 1413, 1414
256 public static List<string>
hints =
new List<string>();
258 public static string[]
featRef =
new string[5];
262 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
268 string[] array = base.source.GetText().SplitNewline();
269 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (
" " + base.Value) :
"");
277 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
281 return !base.IsGlobalElement;
284 public override Sprite
GetIcon(
string suffix =
"")
286 return SpriteSheet.
Get(
"Media/Graphics/Icon/Element/icon_elements",
"ele_Feat");
294 n.AddText(
"_bullet".lang() +
hint);
304 text = text +
hint.StripLastPun() +
", ";
306 return text.TrimEnd(
' ').TrimEnd(
',');
311 if (base.source.req.Length != 0)
314 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()))
324 if (base.source.req.Length != 0)
326 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());
341 int value = base.Value;
342 int A = Mathf.Abs(a);
343 int invert = ((a >= 0) ? 1 : (-1));
346 featRef[0] = a.ToString() ??
"";
347 featRef[1] = a.ToString() ??
"";
351 if (!
hint && a > 0 && chara !=
null)
358 ModBase(78, -a * 10, hide:
false);
361 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ??
"";
364 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ??
"";
367 ModBase(60, a * 4, hide:
false);
370 ModBase(61, a * 4, hide:
false);
373 ModBase(62, a * 4, hide:
false);
400 ModBase(79, a * 5, hide:
false);
403 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
406 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide:
false);
409 ModBase(150, a * 2, hide:
false);
412 ModBase(210, a * 3, hide:
false);
413 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide:
false);
416 ModBase(291, a * 4, hide:
false);
419 ModBase(100, a * 3, hide:
false);
422 ModBase(306, a * 4, hide:
false);
425 ModBase(78, a * 2, hide:
false);
428 ModBase(77, a * 2, hide:
false);
431 featRef[0] = (a * 10).ToString() ??
"";
434 featRef[0] = (a * 10).ToString() ??
"";
437 ModBase(78, a * 15, hide:
false);
440 featRef[0] = (a * 20).ToString() ??
"";
441 featRef[1] = (a * 5).ToString() ??
"";
444 featRef[0] = a.ToString() ??
"";
461 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
462 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide:
false);
463 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide:
false);
466 ModBase(60, A * 2 * invert, hide:
false);
467 ModBase(79, A * 3 * invert, hide:
false);
470 ModBase(64, a * 50, hide:
true);
471 ModBase(401, a, hide:
false);
474 ModBase(403, a * 20, hide:
true);
477 ModBase(955, a * 5, hide:
false);
478 ModBase(953, a * 10, hide:
false);
479 ModBase(958, a * 5, hide:
false);
480 ModBase(956, a * 10, hide:
false);
481 ModBase(950, a * -5, hide:
false);
484 ModBase(956, a * 5, hide:
false);
485 ModBase(959, a * 5, hide:
false);
486 ModBase(423, a, hide:
false);
487 ModBase(424, a, hide:
false);
488 ModBase(421, a, hide:
false);
491 ModBase(954, a * 10, hide:
false);
492 ModBase(423, a, hide:
false);
493 ModBase(425, a, hide:
false);
494 ModBase(424, a, hide:
false);
495 ModBase(421, a, hide:
false);
498 ModBase(955, a * 5, hide:
false);
499 ModBase(953, a * 5, hide:
false);
502 ModBase(961, a * 5, hide:
false);
503 ModBase(953, a * 5, hide:
false);
504 ModBase(958, a * 5, hide:
false);
505 ModBase(956, a * 5, hide:
false);
506 ModBase(954, a * 5, hide:
false);
507 ModBase(957, a * 5, hide:
false);
508 ModBase(959, a * 5, hide:
false);
511 ModBase(962, a * 20, hide:
false);
514 ModBase(951, a * 15, hide:
false);
517 ModBase(952, a * -10, hide:
false);
518 ModBase(955, a * 20, hide:
false);
519 ModBase(964, a * 20, hide:
false);
522 ModBase(950, a / 40, hide:
false);
523 ModBase(952, a / 40, hide:
false);
524 ModBase(955, a / 40, hide:
false);
525 ModBase(953, a / 40, hide:
false);
526 ModBase(958, a / 40, hide:
false);
527 ModBase(956, a / 40, hide:
false);
528 ModBase(954, a / 40, hide:
false);
529 ModBase(959, a / 40, hide:
false);
530 ModBase(964, a / 40, hide:
false);
531 ModBase(961, a / 40, hide:
false);
534 ModBase(964, a * 20, hide:
false);
537 ModBase(963, a * 20, hide:
false);
540 ModBase(6020, a, hide:
false);
543 ModBase(60, a * 15, hide:
false);
544 ModBase(79, a * 5, hide:
false);
545 ModBase(953, a * 3, hide:
false);
546 ModBase(961, a, hide:
false);
547 ModBase(960, a, hide:
false);
559 ModBase(73, -a * 5, hide:
false);
562 ModBase(73, a * 5, hide:
false);
565 ModBase(65, a * 3, hide:
false);
568 ModBase(65, -a * 3, hide:
false);
571 ModBase(73, a * 5, hide:
false);
574 ModBase(73, -a * 5, hide:
false);
577 ModBase(72, a * 3, hide:
false);
580 ModBase(72, -a * 3, hide:
false);
583 ModBase(300, a * 4, hide:
false);
586 ModBase(300, -a * 4, hide:
false);
589 ModBase(79, a * 5, hide:
false);
592 ModBase(79, -a * 5, hide:
false);
595 ModBase(70, a * 3, hide:
false);
598 ModBase(70, -a * 3, hide:
false);
601 ModBase(77, a * 5, hide:
false);
604 ModBase(77, -a * 5, hide:
false);
607 ModBase(307, a * 4, hide:
false);
610 ModBase(307, -a * 4, hide:
false);
613 ModBase(951, a * 5, hide:
false);
614 ModBase(950, -a * 5, hide:
false);
617 ModBase(951, -a * 5, hide:
false);
618 ModBase(950, a * 5, hide:
false);
621 ModBase(952, a * 5, hide:
false);
624 ModBase(952, -a * 5, hide:
false);
627 ModBase(960, a * 5, hide:
false);
628 ModBase(956, -a * 5, hide:
false);
631 ModBase(960, -a * 5, hide:
false);
632 ModBase(956, a * 5, hide:
false);
649 ModBase(404, -a * 10, hide:
false);
652 ModBase(77, -a * (4 + num / 5), hide:
false);
655 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide:
false);
662 ModBase(73, a * (5 + num / 3), hide:
false);
663 ModBase(77, -a * (5 + num / 3), hide:
false);
666 ModBase(404, a * 10, hide:
false);
667 ModBase(401, a, hide:
false);
668 ModBase(79, a * (10 + num / 5), hide:
false);
675 ModBase(65, a * (12 + num), hide:
false);
676 ModBase(77, -a * (5 + num / 5), hide:
false);
683 ModBase(64, -a * (10 + num), hide:
false);
684 ModBase(67, a * (5 + num / 2), hide:
false);
687 ModBase(71, -a * (5 + num / 3), hide:
false);
688 ModBase(72, -a * (4 + num / 4), hide:
false);
689 ModBase(74, a * (6 + num / 2), hide:
false);
690 ModBase(75, a * (2 + num / 6), hide:
false);
693 ModBase(60, -a * 15, hide:
false);
694 ModBase(70, -a * (4 + num / 3), hide:
false);
697 ModBase(61, -a * 15, hide:
false);
698 ModBase(76, -a * (4 + num / 3), hide:
false);
701 ModBase(65, a * (15 + num / 2), hide:
false);
702 ModBase(79, -a * (10 + num / 5), hide:
false);
705 ModBase(77, -a * (3 + num / 4), hide:
false);
708 ModBase(961, a * 5, hide:
false);
711 ModBase(955, a * 20, hide:
false);
716 string text = base.source.GetText(
"textExtra");
719 string text2 = text.SplitNewline().TryGet(value - 1, 99);
720 if (!text2.IsEmpty())
723 string[] array = text2.Split(
',');
724 for (
int i = 0; i < array.Length; i++)
726 string item = array[i].Replace(
"#1",
featRef[num2]);
742 if (value2.
source.id !=
id)
744 NoteElement(value2.
id, value2.
Value);
748 void ModAttribute(
int ele)
753 Debug.Log(((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert);
755 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide:
false);
758 void ModBase(
int ele,
int _v,
bool hide)
764 if (!hide && _v != 0)
766 NoteElement(ele, _v);
784 void NoteElement(
int ele,
int a)
789 Note(
"hintLearnAbility".lang(row.
GetName().ToTitleCase()));
791 else if (row.
tag.Contains(
"flag"))
797 string @ref = ((a < 0) ?
"" :
"+") + a;
801 @ref = ((a > 0) ?
"+" :
"-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num3, 1, 5));
802 Note(
"modValueRes".lang(row.
GetName(), @ref));
806 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 featMassSummoner
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)