Elin Decompiled Documentation EA 23.262 Nightly Patch 1
Loading...
Searching...
No Matches
FEAT.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using UnityEngine;
3
4public class FEAT
5{
6 public const int featLoyal = 1225;
7
8 public const int featMagicManner = 1651;
9
10 public const int featGourmet = 1650;
11
12 public const int featDefender = 1649;
13
14 public const int featRapidMagic = 1648;
15
16 public const int featSummoner = 1647;
17
18 public const int featLonelySoul = 1646;
19
20 public const int featParty = 1645;
21
22 public const int featBodyParts = 1644;
23
24 public const int featSorter = 1643;
25
26 public const int featSleeper = 1642;
27
28 public const int featResCurse = 1641;
29
30 public const int featAnimalLover = 1640;
31
32 public const int featFaith = 1636;
33
34 public const int featMartial = 1635;
35
36 public const int featNegotiate = 1634;
37
38 public const int featSpotting = 1633;
39
40 public const int featEvade = 1632;
41
42 public const int featMana = 1611;
43
44 public const int featStamina = 1612;
45
46 public const int featSTR = 1620;
47
48 public const int featDEX = 1621;
49
50 public const int featEND = 1622;
51
52 public const int featPER = 1623;
53
54 public const int featRapidArrow = 1652;
55
56 public const int featLER = 1624;
57
58 public const int featWIL = 1626;
59
60 public const int featCHA = 1627;
61
62 public const int featLuck = 1628;
63
64 public const int featSPD = 1629;
65
66 public const int featHardy = 1630;
67
68 public const int featDefense = 1631;
69
70 public const int featMAG = 1625;
71
72 public const int featDreamWaker = 1653;
73
74 public const int featHeavyCasting = 1654;
75
76 public const int featModelBeliever = 1655;
77
78 public const int featFairyResist = 1212;
79
80 public const int featSnail = 1211;
81
82 public const int featUndead = 1210;
83
84 public const int featFluffyTail = 1209;
85
86 public const int featFoxLearn = 1208;
87
88 public const int featFoxBless = 1207;
89
90 public const int featElea = 1213;
91
92 public const int featMelilithCurse = 1206;
93
94 public const int featFairyWeak = 1204;
95
96 public const int featGrowParts = 1203;
97
98 public const int featFastLearner = 1202;
99
100 public const int featManaBond = 1201;
101
102 public const int featSlowFood = 1200;
103
104 public const int featShiva = 1224;
105
106 public const int featCannibalism = 1205;
107
108 public const int featLife = 1610;
109
110 public const int featManaPrecision = 1214;
111
112 public const int featSuccubus = 1216;
113
114 public const int featScavenger = 1656;
115
116 public const int featManaCost = 1657;
117
118 public const int featChef = 1658;
119
120 public const int featFisher = 1659;
121
122 public const int featLooter = 1660;
123
124 public const int featDismantler = 1661;
125
126 public const int featDwarf = 1215;
127
128 public const int featGoldenFinger = 1662;
129
130 public const int featSplit = 1222;
131
132 public const int featSpike = 1221;
133
134 public const int featFate = 1220;
135
136 public const int featElderCrab = 1219;
137
138 public const int featMetal = 1218;
139
140 public const int featGolem = 1217;
141
142 public const int featAcidBody = 1223;
143
144 public const int featNeckHunter = 1426;
145
146 public const int featComat = 1750;
147
148 public const int featElite = 1424;
149
150 public const int featGoodKarma = 1270;
151
152 public const int featBadKarma = 1271;
153
154 public const int featPeacemaker = 1272;
155
156 public const int featBloom = 1273;
157
158 public const int featGoddess = 1290;
159
160 public const int featGod_element1 = 1300;
161
162 public const int featGod_earth1 = 1305;
163
164 public const int featGod_wind1 = 1310;
165
166 public const int featGod_machine1 = 1315;
167
168 public const int featGod_healing1 = 1320;
169
170 public const int featGod_harvest1 = 1325;
171
172 public const int featAquatic = 1252;
173
174 public const int featGod_luck1 = 1330;
175
176 public const int featGod_trickery1 = 1345;
177
178 public const int featGod_moonshadow1 = 1350;
179
180 public const int featGod_strife1 = 1355;
181
182 public const int featWarrior = 1400;
183
184 public const int featThief = 1401;
185
186 public const int featWizard = 1402;
187
188 public const int featFarmer = 1403;
189
190 public const int featArcher = 1404;
191
192 public const int featPianist = 1405;
193
194 public const int featTourist = 1406;
195
196 public const int featPaladin = 1407;
197
198 public const int featGod_harmony1 = 1335;
199
200 public const int featPaladin2 = 1408;
201
202 public const int featAshborn = 1251;
203
204 public const int featBloodBond = 1249;
205
206 public const int featNorland = 1236;
207
208 public const int featLightEater = 1235;
209
210 public const int featHeavyEater = 1234;
211
212 public const int featMimic = 1425;
213
214 public const int featCosmicHorror = 1233;
215
216 public const int featBaby = 1232;
217
218 public const int featNirvana = 1231;
219
220 public const int featAdam = 1230;
221
222 public const int featLittleOne = 1229;
223
224 public const int featDemigod = 1228;
225
226 public const int featServant = 1227;
227
228 public const int featVampire = 1250;
229
230 public const int featUnderground = 1226;
231
232 public const int featElder = 1238;
233
234 public const int featDemon = 1239;
235
236 public const int featMassSummoner = 1240;
237
238 public const int featMeatCushion = 1241;
239
240 public const int featGeneSlot = 1242;
241
242 public const int featEternalYouth = 1243;
243
244 public const int featCentaur = 1244;
245
246 public const int featSevenSense = 1245;
247
248 public const int featPegasus = 1246;
249
250 public const int featLibra = 1247;
251
252 public const int featMiscreation = 1248;
253
254 public const int featRoran = 1237;
255
256 public const int featBoost = 1409;
257
258 public const int featGod_oblivion1 = 1340;
259
260 public const int featEarthStrength = 1411;
261
262 public const int featPeaky = 1423;
263
264 public const int featHealer = 1422;
265
266 public const int featManaMeat = 1421;
267
268 public const int featExecutioner = 1420;
269
270 public const int featMilitant = 1419;
271
272 public const int featSwordsage = 1418;
273
274 public const int featReboot = 1410;
275
276 public const int featInquisitor = 1416;
277
278 public const int featFoxMaid = 1415;
279
280 public const int featWhiteVixen = 1414;
281
282 public const int featFairysan = 1413;
283
284 public const int featLuckyCat = 1412;
285
286 public const int featWitch = 1417;
287
288 public static readonly int[] IDS = new int[141]
289 {
290 1225, 1651, 1650, 1649, 1648, 1647, 1646, 1645, 1644, 1643,
291 1642, 1641, 1640, 1636, 1635, 1634, 1633, 1632, 1611, 1612,
292 1620, 1621, 1622, 1623, 1652, 1624, 1626, 1627, 1628, 1629,
293 1630, 1631, 1625, 1653, 1654, 1655, 1212, 1211, 1210, 1209,
294 1208, 1207, 1213, 1206, 1204, 1203, 1202, 1201, 1200, 1224,
295 1205, 1610, 1214, 1216, 1656, 1657, 1658, 1659, 1660, 1661,
296 1215, 1662, 1222, 1221, 1220, 1219, 1218, 1217, 1223, 1426,
297 1750, 1424, 1270, 1271, 1272, 1273, 1290, 1300, 1305, 1310,
298 1315, 1320, 1325, 1252, 1330, 1345, 1350, 1355, 1400, 1401,
299 1402, 1403, 1404, 1405, 1406, 1407, 1335, 1408, 1251, 1249,
300 1236, 1235, 1234, 1425, 1233, 1232, 1231, 1230, 1229, 1228,
301 1227, 1250, 1226, 1238, 1239, 1240, 1241, 1242, 1243, 1244,
302 1245, 1246, 1247, 1248, 1237, 1409, 1340, 1411, 1423, 1422,
303 1421, 1420, 1419, 1418, 1410, 1416, 1415, 1414, 1413, 1412,
304 1417
305 };
306}
307public class Feat : Element
308{
309 public static List<string> hints = new List<string>();
310
311 public static string[] featRef = new string[5];
312
313 public override bool ShowBonuses => false;
314
315 public override string Name => base.source.GetText().SplitNewline().TryGet(base.Value - 1);
316
317 public override string FullName
318 {
319 get
320 {
321 string[] array = base.source.GetText().SplitNewline();
322 return array.TryGet(base.Value - 1) + ((base.source.max > 1 && array.Length == 1 && base.Value > 1) ? (" " + base.Value) : "");
323 }
324 }
325
326 public override bool ShowXP => false;
327
328 public override bool ShowValue => false;
329
330 public override int CostLearn => base.source.cost.TryGet(base.Value - 1);
331
332 public override bool CanLink(ElementContainer owner)
333 {
334 return !base.IsGlobalElement;
335 }
336
337 public override Sprite GetIcon(string suffix = "")
338 {
339 return SpriteSheet.Get("Media/Graphics/Icon/Element/icon_elements", "ele_Feat");
340 }
341
342 public override void OnWriteNote(UINote n, ElementContainer owner)
343 {
344 Apply(base.Value, owner, hint: true);
345 foreach (string hint in hints)
346 {
347 n.AddText("_bullet".lang() + hint);
348 }
349 }
350
352 {
353 string text = "";
354 Apply(base.Value, owner, hint: true);
355 foreach (string hint in hints)
356 {
357 text = text + hint.StripLastPun() + ", ";
358 }
359 return text.TrimEnd(' ').TrimEnd(',');
360 }
361
362 public override bool IsPurchaseFeatReqMet(ElementContainer owner, int lv = -1)
363 {
364 if (base.source.req.Length != 0)
365 {
366 Element element = owner.GetElement(base.source.req[0]);
367 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()))
368 {
369 return false;
370 }
371 }
372 return true;
373 }
374
375 public override void WritePurchaseReq(UINote n, int lv = -1)
376 {
377 if (base.source.req.Length != 0)
378 {
379 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());
380 if (element != null)
381 {
382 n.AddHeader("featReq");
383 n.AddText(element.Name + ": " + element.Value, FontColor.Bad);
384 }
385 }
386 }
387
388 public List<string> Apply(int a, ElementContainer owner, bool hint = false)
389 {
390 if (hint)
391 {
392 hints.Clear();
393 }
394 int value = base.Value;
395 int A = Mathf.Abs(a);
396 int invert = ((a >= 0) ? 1 : (-1));
397 if (hint)
398 {
399 featRef[0] = a.ToString() ?? "";
400 featRef[1] = a.ToString() ?? "";
401 }
402 Chara chara = owner.Chara;
403 int num = vPotential;
404 if (!hint && a > 0 && chara != null)
405 {
406 num = (vPotential = chara.LV);
407 }
408 switch (id)
409 {
410 case 1660:
411 featRef[0] = (a * 25).ToString() ?? "";
412 break;
413 case 1206:
414 ModBase(78, -a * 10, hide: false);
415 break;
416 case 1642:
417 featRef[0] = ((a == 1) ? 10 : ((a == 2) ? 20 : 30)).ToString() ?? "";
418 break;
419 case 1643:
420 featRef[0] = ((a == 1) ? 1 : ((a == 2) ? 3 : 5)).ToString() ?? "";
421 break;
422 case 1610:
423 ModBase(60, a * 4, hide: false);
424 break;
425 case 1611:
426 ModBase(61, a * 4, hide: false);
427 break;
428 case 1612:
429 ModBase(62, a * 4, hide: false);
430 break;
431 case 1620:
432 ModAttribute(70);
433 break;
434 case 1621:
435 ModAttribute(72);
436 break;
437 case 1622:
438 ModAttribute(71);
439 break;
440 case 1623:
441 ModAttribute(73);
442 break;
443 case 1626:
444 ModAttribute(75);
445 break;
446 case 1625:
447 ModAttribute(76);
448 break;
449 case 1627:
450 ModAttribute(77);
451 break;
452 case 1624:
453 ModAttribute(74);
454 break;
455 case 1629:
456 ModBase(79, a * 5, hide: false);
457 break;
458 case 1630:
459 ModBase(65, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide: false);
460 break;
461 case 1631:
462 ModBase(64, ((A == 1) ? 2 : ((A == 2) ? 5 : 10)) * invert, hide: false);
463 break;
464 case 1632:
465 ModBase(150, a * 2, hide: false);
466 break;
467 case 1633:
468 ModBase(210, a * 3, hide: false);
469 ModBase(402, ((A == 3) ? 1 : 0) * invert, hide: false);
470 break;
471 case 1634:
472 ModBase(291, a * 4, hide: false);
473 break;
474 case 1635:
475 ModBase(100, a * 3, hide: false);
476 break;
477 case 1636:
478 ModBase(306, a * 4, hide: false);
479 break;
480 case 1628:
481 ModBase(78, a * 2, hide: false);
482 break;
483 case 1640:
484 ModBase(77, a * 2, hide: false);
485 break;
486 case 1400:
487 featRef[0] = (a * 10).ToString() ?? "";
488 break;
489 case 1404:
490 featRef[0] = (a * 10).ToString() ?? "";
491 break;
492 case 1401:
493 ModBase(78, a * 15, hide: false);
494 break;
495 case 1406:
496 featRef[0] = (a * 20).ToString() ?? "";
497 featRef[1] = (a * 5).ToString() ?? "";
498 break;
499 case 1644:
500 featRef[0] = a.ToString() ?? "";
501 if (!hint)
502 {
503 if (a > 0)
504 {
506 }
507 else
508 {
509 _ = a;
510 _ = 0;
511 }
512 if (owner.Chara.IsPC && (bool)WidgetEquip.Instance)
513 {
515 }
516 }
517 ModBase(60, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide: false);
518 ModBase(79, (A > 5) ? ((A - 5) * -5 * invert) : 0, hide: false);
519 ModBase(77, (A > 5) ? ((A - 5) * -3 * invert) : 0, hide: false);
520 break;
521 case 1230:
522 ModBase(60, A * 2 * invert, hide: false);
523 ModBase(79, A * 3 * invert, hide: false);
524 break;
525 case 1204:
526 ModBase(64, a * 50, hide: true);
527 ModBase(401, a, hide: false);
528 break;
529 case 1202:
530 ModBase(403, a * 20, hide: true);
531 break;
532 case 1210:
533 ModBase(955, a * 5, hide: false);
534 ModBase(953, a * 10, hide: false);
535 ModBase(958, a * 5, hide: false);
536 ModBase(956, a * 10, hide: false);
537 ModBase(950, a * -5, hide: false);
538 ModBase(960, a * -5, hide: false);
539 ModBase(423, a, hide: false);
540 break;
541 case 1290:
542 ModBase(418, a * 100, hide: false);
543 break;
544 case 1239:
545 ModBase(956, a * 5, hide: false);
546 ModBase(959, a * 5, hide: false);
547 ModBase(423, a, hide: false);
548 ModBase(424, a, hide: false);
549 ModBase(421, a, hide: false);
550 break;
551 case 1233:
552 ModBase(954, a * 10, hide: false);
553 ModBase(423, a, hide: false);
554 ModBase(425, a, hide: false);
555 ModBase(424, a, hide: false);
556 ModBase(421, a, hide: false);
557 break;
558 case 1226:
559 ModBase(955, a * 5, hide: false);
560 ModBase(953, a * 5, hide: false);
561 break;
562 case 1212:
563 ModBase(961, a * 5, hide: false);
564 ModBase(953, a * 5, hide: false);
565 ModBase(958, a * 5, hide: false);
566 ModBase(956, a * 5, hide: false);
567 ModBase(954, a * 5, hide: false);
568 ModBase(957, a * 5, hide: false);
569 ModBase(959, a * 5, hide: false);
570 break;
571 case 1213:
572 ModBase(962, a * 20, hide: false);
573 break;
574 case 1224:
575 ModBase(951, a * 15, hide: false);
576 break;
577 case 1217:
578 ModBase(952, a * -10, hide: false);
579 ModBase(955, a * 20, hide: false);
580 ModBase(964, a * 20, hide: false);
581 break;
582 case 1218:
583 ModBase(950, a / 40, hide: false);
584 ModBase(952, a / 40, hide: false);
585 ModBase(955, a / 40, hide: false);
586 ModBase(953, a / 40, hide: false);
587 ModBase(958, a / 40, hide: false);
588 ModBase(956, a / 40, hide: false);
589 ModBase(954, a / 40, hide: false);
590 ModBase(959, a / 40, hide: false);
591 ModBase(964, a / 40, hide: false);
592 ModBase(961, a / 40, hide: false);
593 break;
594 case 1221:
595 ModBase(964, a * 20, hide: false);
596 break;
597 case 1223:
598 ModBase(963, a * 20, hide: false);
599 break;
600 case 1216:
601 ModBase(6020, a, hide: false);
602 break;
603 case 1250:
604 ModBase(950, a * -10, hide: false);
605 ModBase(951, a * 5, hide: false);
606 ModBase(961, a * 5, hide: false);
607 ModBase(8793, a, hide: false);
608 ModBase(6607, a, hide: false);
609 break;
610 case 1415:
611 ModBase(60, a * 15, hide: false);
612 ModBase(79, a * 5, hide: false);
613 ModBase(953, a * 3, hide: false);
614 ModBase(961, a, hide: false);
615 ModBase(960, a, hide: false);
616 break;
617 case 1419:
618 ModPotential(101, a * 50);
619 ModPotential(111, a * 50);
620 ModPotential(103, a * 50);
621 ModPotential(106, a * 50);
622 ModPotential(122, a * 50);
623 ModPotential(120, a * 50);
624 ModPotential(123, a * 50);
625 break;
626 case 1750:
627 {
628 string[] array = featRef;
629 int num2 = a;
630 array[0] = num2.ToString() ?? "";
631 featRef[1] = (a * 2).ToString() ?? "";
632 break;
633 }
634 case 1532:
635 ModBase(73, -a * 5, hide: false);
636 break;
637 case 1533:
638 ModBase(73, a * 5, hide: false);
639 break;
640 case 1510:
641 ModBase(65, a * 3, hide: false);
642 break;
643 case 1511:
644 ModBase(65, -a * 3, hide: false);
645 break;
646 case 1512:
647 ModBase(73, a * 5, hide: false);
648 break;
649 case 1513:
650 ModBase(73, -a * 5, hide: false);
651 break;
652 case 1514:
653 ModBase(72, a * 3, hide: false);
654 break;
655 case 1515:
656 ModBase(72, -a * 3, hide: false);
657 break;
658 case 1516:
659 ModBase(300, a * 4, hide: false);
660 break;
661 case 1517:
662 ModBase(300, -a * 4, hide: false);
663 break;
664 case 1518:
665 ModBase(79, a * 5, hide: false);
666 break;
667 case 1519:
668 ModBase(79, -a * 5, hide: false);
669 break;
670 case 1520:
671 ModBase(70, a * 3, hide: false);
672 break;
673 case 1521:
674 ModBase(70, -a * 3, hide: false);
675 break;
676 case 1522:
677 ModBase(77, a * 5, hide: false);
678 break;
679 case 1523:
680 ModBase(77, -a * 5, hide: false);
681 break;
682 case 1524:
683 ModBase(307, a * 4, hide: false);
684 break;
685 case 1525:
686 ModBase(307, -a * 4, hide: false);
687 break;
688 case 1526:
689 ModBase(951, a * 5, hide: false);
690 ModBase(950, -a * 5, hide: false);
691 break;
692 case 1527:
693 ModBase(951, -a * 5, hide: false);
694 ModBase(950, a * 5, hide: false);
695 break;
696 case 1528:
697 ModBase(952, a * 5, hide: false);
698 break;
699 case 1529:
700 ModBase(952, -a * 5, hide: false);
701 break;
702 case 1530:
703 ModBase(960, a * 5, hide: false);
704 ModBase(956, -a * 5, hide: false);
705 break;
706 case 1531:
707 ModBase(960, -a * 5, hide: false);
708 ModBase(956, a * 5, hide: false);
709 break;
710 case 1300:
711 case 1305:
712 case 1310:
713 case 1315:
714 case 1320:
715 case 1325:
716 case 1330:
717 case 1335:
718 case 1340:
719 case 1345:
720 case 1350:
721 case 1355:
722 GodHint();
723 break;
724 case 1550:
725 ModBase(404, -a * 10, hide: false);
726 break;
727 case 1551:
728 ModBase(77, -a * (4 + num / 5), hide: false);
729 break;
730 case 1552:
731 ModBase(79, a * Mathf.Min(30 + num / 5, 100), hide: false);
732 if (!hint && a > 0)
733 {
734 chara?.body.UnequipAll(39);
735 }
736 break;
737 case 1553:
738 ModBase(73, a * (5 + num / 3), hide: false);
739 ModBase(77, -a * (5 + num / 3), hide: false);
740 break;
741 case 1554:
742 ModBase(404, a * 10, hide: false);
743 ModBase(401, a, hide: false);
744 ModBase(79, a * (10 + num / 5), hide: false);
745 if (!hint && a > 0)
746 {
747 chara?.body.UnequipAll(33);
748 }
749 break;
750 case 1555:
751 ModBase(65, a * (12 + num), hide: false);
752 ModBase(77, -a * (5 + num / 5), hide: false);
753 if (!hint && a > 0)
754 {
755 chara?.body.UnequipAll(31);
756 }
757 break;
758 case 1556:
759 ModBase(64, -a * (10 + num), hide: false);
760 ModBase(67, a * (5 + num / 2), hide: false);
761 break;
762 case 1557:
763 ModBase(71, -a * (5 + num / 3), hide: false);
764 ModBase(72, -a * (4 + num / 4), hide: false);
765 ModBase(74, a * (6 + num / 2), hide: false);
766 ModBase(75, a * (2 + num / 6), hide: false);
767 break;
768 case 1560:
769 ModBase(60, -a * 15, hide: false);
770 ModBase(70, -a * (4 + num / 3), hide: false);
771 break;
772 case 1561:
773 ModBase(61, -a * 15, hide: false);
774 ModBase(76, -a * (4 + num / 3), hide: false);
775 break;
776 case 1562:
777 ModBase(65, a * (15 + num / 2), hide: false);
778 ModBase(79, -a * (10 + num / 5), hide: false);
779 break;
780 case 1563:
781 ModBase(77, -a * (3 + num / 4), hide: false);
782 break;
783 case 1564:
784 ModBase(961, a * 5, hide: false);
785 break;
786 case 1565:
787 ModBase(955, a * 20, hide: false);
788 break;
789 }
790 if (hint)
791 {
792 string text = base.source.GetText("textExtra");
793 if (!text.IsEmpty())
794 {
795 string text2 = text.SplitNewline().TryGet(value - 1, 99);
796 if (!text2.IsEmpty())
797 {
798 int num3 = 0;
799 string[] array2 = text2.Split(',');
800 foreach (string obj in array2)
801 {
802 string text3 = featRef[num3];
803 string text4 = obj;
804 if (text3.ToInt() < 0)
805 {
806 text4 = text4.Replace("+#1", text3);
807 }
808 text4 = text4.Replace("#1", text3);
809 hints.Add(text4);
810 num3++;
811 }
812 }
813 }
814 }
815 return hints;
816 void GodHint()
817 {
818 if (!hint)
819 {
820 return;
821 }
822 foreach (Element value2 in owner.Card.Chara.faithElements.dict.Values)
823 {
824 if (value2.source.id != id)
825 {
826 NoteElement(value2.id, value2.Value);
827 }
828 }
829 }
830 void ModAttribute(int ele)
831 {
832 _ = hint;
833 ModBase(ele, ((A == 1) ? 2 : ((A == 2) ? 4 : 5)) * invert, hide: false);
834 ModPotential(ele, a * 10);
835 }
836 void ModBase(int ele, int _v, bool hide)
837 {
838 if (!hint)
839 {
840 owner.ModBase(ele, _v);
841 }
842 if (!hide && _v != 0)
843 {
844 NoteElement(ele, _v);
845 }
846 }
847 void ModPotential(int ele, int _v)
848 {
849 if (!hint)
850 {
851 owner.ModPotential(ele, _v);
852 }
853 Note("modPotential".lang(EClass.sources.elements.map[ele].GetName(), "+" + _v + "%"));
854 }
855 void Note(string s)
856 {
857 if (hint)
858 {
859 hints.Add(s);
860 }
861 }
862 void NoteElement(int ele, int a)
863 {
865 if (row.category == "ability")
866 {
867 Note("hintLearnAbility".lang(row.GetName().ToTitleCase()));
868 }
869 else if (row.tag.Contains("flag"))
870 {
871 Note(row.GetName());
872 }
873 else
874 {
875 string @ref = ((a < 0) ? "" : "+") + a;
876 if (row.category == "resist")
877 {
878 int num4 = 0;
879 @ref = ((a > 0) ? "+" : "-").Repeat(Mathf.Clamp(Mathf.Abs(a) / 5 + num4, 1, 5));
880 Note("modValueRes".lang(row.GetName(), @ref));
881 }
882 else
883 {
884 Note("modValue".lang(row.GetName(), @ref));
885 }
886 }
887 }
888 }
889}
@ ModPotential
@ hint
FontColor
Definition: FontColor.cs:2
virtual Chara Chara
Definition: Card.cs:2071
int LV
Definition: Card.cs:387
void UnequipAll(int idSlot)
Definition: CharaBody.cs:57
Definition: Chara.cs:10
CharaBody body
Definition: Chara.cs:94
override bool IsPC
Definition: Chara.cs:614
void AddRandomBodyPart(bool msg=false)
Definition: Chara.cs:2205
ElementContainer faithElements
Definition: Chara.cs:38
Definition: EClass.cs:6
static SourceManager sources
Definition: EClass.cs:43
Dictionary< int, Element > dict
Element ModPotential(int ele, int v)
virtual Card Card
int Value(int ele)
Element ModBase(int ele, int v)
virtual Chara Chara
Element GetElement(string alias)
int ValueWithoutLink
Definition: ELEMENT.cs:299
int id
Definition: ELEMENT.cs:255
SourceElement.Row source
Definition: ELEMENT.cs:278
int vPotential
Definition: ELEMENT.cs:261
ElementContainer owner
Definition: ELEMENT.cs:271
int Value
Definition: ELEMENT.cs:297
virtual string Name
Definition: ELEMENT.cs:309
static Element Create(int id, int v=0)
Definition: ELEMENT.cs:1107
Definition: FEAT.cs:5
const int featManaCost
Definition: FEAT.cs:116
const int featElite
Definition: FEAT.cs:148
const int featDemon
Definition: FEAT.cs:234
const int featLonelySoul
Definition: FEAT.cs:18
const int featUnderground
Definition: FEAT.cs:230
const int featMiscreation
Definition: FEAT.cs:252
const int featAdam
Definition: FEAT.cs:220
const int featWitch
Definition: FEAT.cs:286
const int featLuckyCat
Definition: FEAT.cs:284
const int featShiva
Definition: FEAT.cs:104
const int featCannibalism
Definition: FEAT.cs:106
const int featMartial
Definition: FEAT.cs:34
const int featFairysan
Definition: FEAT.cs:282
const int featBoost
Definition: FEAT.cs:256
const int featNirvana
Definition: FEAT.cs:218
const int featSPD
Definition: FEAT.cs:64
const int featSnail
Definition: FEAT.cs:80
const int featSwordsage
Definition: FEAT.cs:272
const int featEvade
Definition: FEAT.cs:40
const int featModelBeliever
Definition: FEAT.cs:76
const int featEternalYouth
Definition: FEAT.cs:242
const int featAcidBody
Definition: FEAT.cs:142
const int featBloom
Definition: FEAT.cs:156
const int featGeneSlot
Definition: FEAT.cs:240
const int featMelilithCurse
Definition: FEAT.cs:92
const int featTourist
Definition: FEAT.cs:194
const int featGod_element1
Definition: FEAT.cs:160
const int featFate
Definition: FEAT.cs:134
const int featServant
Definition: FEAT.cs:226
const int featAshborn
Definition: FEAT.cs:202
const int featDEX
Definition: FEAT.cs:48
const int featNorland
Definition: FEAT.cs:206
const int featGoodKarma
Definition: FEAT.cs:150
const int featFaith
Definition: FEAT.cs:32
const int featExecutioner
Definition: FEAT.cs:268
const int featArcher
Definition: FEAT.cs:190
const int featEND
Definition: FEAT.cs:50
const int featPaladin
Definition: FEAT.cs:196
const int featSuccubus
Definition: FEAT.cs:112
const int featPaladin2
Definition: FEAT.cs:200
const int featRoran
Definition: FEAT.cs:254
const int featLightEater
Definition: FEAT.cs:208
const int featHardy
Definition: FEAT.cs:66
const int featHeavyCasting
Definition: FEAT.cs:74
const int featGolem
Definition: FEAT.cs:140
const int featNeckHunter
Definition: FEAT.cs:144
const int featFisher
Definition: FEAT.cs:120
const int featMagicManner
Definition: FEAT.cs:8
const int featHealer
Definition: FEAT.cs:264
const int featElea
Definition: FEAT.cs:90
const int featDreamWaker
Definition: FEAT.cs:72
const int featMetal
Definition: FEAT.cs:138
const int featLoyal
Definition: FEAT.cs:6
const int featManaPrecision
Definition: FEAT.cs:110
const int featScavenger
Definition: FEAT.cs:114
const int featMassSummoner
Definition: FEAT.cs:236
const int featLuck
Definition: FEAT.cs:62
const int featMimic
Definition: FEAT.cs:212
const int featFoxLearn
Definition: FEAT.cs:86
const int featAquatic
Definition: FEAT.cs:172
const int featBodyParts
Definition: FEAT.cs:22
const int featSTR
Definition: FEAT.cs:46
const int featDefense
Definition: FEAT.cs:68
const int featManaBond
Definition: FEAT.cs:100
const int featFastLearner
Definition: FEAT.cs:98
const int featGod_wind1
Definition: FEAT.cs:164
const int featPeaky
Definition: FEAT.cs:262
const int featSplit
Definition: FEAT.cs:130
const int featLER
Definition: FEAT.cs:56
const int featPER
Definition: FEAT.cs:52
const int featDwarf
Definition: FEAT.cs:126
const int featFairyWeak
Definition: FEAT.cs:94
const int featInquisitor
Definition: FEAT.cs:276
const int featGod_trickery1
Definition: FEAT.cs:176
const int featCosmicHorror
Definition: FEAT.cs:214
const int featSummoner
Definition: FEAT.cs:16
const int featEarthStrength
Definition: FEAT.cs:260
const int featSorter
Definition: FEAT.cs:24
const int featWhiteVixen
Definition: FEAT.cs:280
const int featManaMeat
Definition: FEAT.cs:266
const int featGod_healing1
Definition: FEAT.cs:168
const int featReboot
Definition: FEAT.cs:274
const int featMAG
Definition: FEAT.cs:70
const int featSevenSense
Definition: FEAT.cs:246
const int featBadKarma
Definition: FEAT.cs:152
const int featRapidMagic
Definition: FEAT.cs:14
const int featFluffyTail
Definition: FEAT.cs:84
const int featLibra
Definition: FEAT.cs:250
const int featGourmet
Definition: FEAT.cs:10
const int featResCurse
Definition: FEAT.cs:28
const int featMeatCushion
Definition: FEAT.cs:238
const int featBloodBond
Definition: FEAT.cs:204
const int featBaby
Definition: FEAT.cs:216
static readonly int[] IDS
Definition: FEAT.cs:288
const int featWIL
Definition: FEAT.cs:58
const int featFoxBless
Definition: FEAT.cs:88
const int featSpotting
Definition: FEAT.cs:38
const int featGod_moonshadow1
Definition: FEAT.cs:178
const int featSleeper
Definition: FEAT.cs:26
const int featStamina
Definition: FEAT.cs:44
const int featThief
Definition: FEAT.cs:184
const int featDismantler
Definition: FEAT.cs:124
const int featGoldenFinger
Definition: FEAT.cs:128
const int featVampire
Definition: FEAT.cs:228
const int featWarrior
Definition: FEAT.cs:182
const int featGod_strife1
Definition: FEAT.cs:180
const int featGod_harvest1
Definition: FEAT.cs:170
const int featAnimalLover
Definition: FEAT.cs:30
const int featSpike
Definition: FEAT.cs:132
const int featComat
Definition: FEAT.cs:146
const int featUndead
Definition: FEAT.cs:82
const int featCHA
Definition: FEAT.cs:60
const int featFairyResist
Definition: FEAT.cs:78
const int featGod_earth1
Definition: FEAT.cs:162
const int featFoxMaid
Definition: FEAT.cs:278
const int featElderCrab
Definition: FEAT.cs:136
const int featGod_luck1
Definition: FEAT.cs:174
const int featPegasus
Definition: FEAT.cs:248
const int featHeavyEater
Definition: FEAT.cs:210
const int featCentaur
Definition: FEAT.cs:244
const int featGod_machine1
Definition: FEAT.cs:166
const int featMilitant
Definition: FEAT.cs:270
const int featRapidArrow
Definition: FEAT.cs:54
const int featLooter
Definition: FEAT.cs:122
const int featGrowParts
Definition: FEAT.cs:96
const int featDemigod
Definition: FEAT.cs:224
const int featParty
Definition: FEAT.cs:20
const int featPianist
Definition: FEAT.cs:192
const int featLittleOne
Definition: FEAT.cs:222
const int featChef
Definition: FEAT.cs:118
const int featDefender
Definition: FEAT.cs:12
const int featGoddess
Definition: FEAT.cs:158
const int featGod_harmony1
Definition: FEAT.cs:198
const int featElder
Definition: FEAT.cs:232
const int featPeacemaker
Definition: FEAT.cs:154
const int featMana
Definition: FEAT.cs:42
const int featWizard
Definition: FEAT.cs:186
const int featSlowFood
Definition: FEAT.cs:102
const int featLife
Definition: FEAT.cs:108
const int featGod_oblivion1
Definition: FEAT.cs:258
const int featFarmer
Definition: FEAT.cs:188
const int featNegotiate
Definition: FEAT.cs:36
Definition: FEAT.cs:308
List< string > Apply(int a, ElementContainer owner, bool hint=false)
Definition: FEAT.cs:388
override bool ShowValue
Definition: FEAT.cs:328
override string FullName
Definition: FEAT.cs:318
override Sprite GetIcon(string suffix="")
Definition: FEAT.cs:337
override bool ShowXP
Definition: FEAT.cs:326
static List< string > hints
Definition: FEAT.cs:309
override bool CanLink(ElementContainer owner)
Definition: FEAT.cs:332
static string[] featRef
Definition: FEAT.cs:311
string GetHint(ElementContainer owner)
Definition: FEAT.cs:351
override void WritePurchaseReq(UINote n, int lv=-1)
Definition: FEAT.cs:375
override bool IsPurchaseFeatReqMet(ElementContainer owner, int lv=-1)
Definition: FEAT.cs:362
override string Name
Definition: FEAT.cs:315
override void OnWriteNote(UINote n, ElementContainer owner)
Definition: FEAT.cs:342
override int CostLearn
Definition: FEAT.cs:330
override bool ShowBonuses
Definition: FEAT.cs:313
override string GetName()
SourceElement elements
static Sprite Get(string id)
Definition: SpriteSheet.cs:28
Definition: UINote.cs:6
UIItem AddHeader(string text, Sprite sprite=null)
Definition: UINote.cs:79
UIItem AddText(string text, FontColor color=FontColor.DontChange)
Definition: UINote.cs:113
static WidgetEquip Instance
Definition: WidgetEquip.cs:11
void Rebuild()
Definition: WidgetEquip.cs:53