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