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