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