2using System.Collections.Generic;
38 if (points.Count == 0)
52 List<Card> list =
new List<Card>();
56 power = power * actref.refThing.material.hardness / 10;
58 string text =
id.ToString();
59 string text2 = (
EClass.
sources.
calc.map.ContainsKey(text) ? text : (text.ToLower() +
"_"));
60 foreach (
Point p
in points)
74 text2 =
"SpEarthquake";
82 if (CC.isChara && p.
Equals(CC.pos) && points.Count >= 2)
98 effect.sr.color = elementRef.colorSprite;
99 TrailRenderer componentInChildren = effect.GetComponentInChildren<TrailRenderer>();
100 Color startColor = (componentInChildren.endColor = elementRef.colorSprite);
101 componentInChildren.startColor = startColor;
111 float num3 = 0.06f * (float)CC.pos.Distance(p);
113 TweenUtil.Tween(num3,
null, delegate
125 effect =
Effect.
Get(
"Element/ball_" + ((e.id == 0) ?
"Void" : e.source.alias.Remove(0, 3)));
128 effect =
Effect.
Get(
"Element/ball_Fire");
130 float startDelay = ((
id ==
EffectId.Meteor) ? 0.1f : 0.04f) * (float)CC.pos.Distance(p);
146 effect.
Play(CC.pos, 0f, p);
153 effect.
Play(p).Flip(p.
x > CC.pos.x);
158 if (CC.IsPCFactionOrMinion && (CC.HasElement(1651) ||
EClass.
pc.
Evalue(1651) >= 2))
165 if (
item.IsPCFactionOrMinion)
170 else if (e.id != 910 || !
item.IsFood || !
item.category.IsChildOf(
"foodstuff"))
195 if (((uint)(
id - 250) <= 1u ||
id ==
EffectId.Sword) && c.
isChara && CC.isChara)
207 bool isChara = CC.isChara;
211 num4 = num4 * 100 / (50 + point.Distance(p) * 75);
219 Dice dice =
Dice.
Create(text2, power, CC, (actref.refThing !=
null) ? null : actref.act);
238 num4 = num4 * (int)Mathf.Min(70f + Mathf.Sqrt(CC.Evalue(101)) * 3f, 200f) / 100;
243 num4 = num4 * 100 / (90 + point.Distance(p) * 10);
251 if ((actref.noFriendlyFire && !CC.Chara.IsHostile(c as
Chara)) || (flag && c == CC))
255 if (isChara && points.Count > 1 && c !=
null && c.
isChara && CC.isChara && CC.Chara.IsFriendOrAbove(c.
Chara))
257 int num5 = CC.Evalue(302);
258 if (!CC.IsPC && CC.IsPCFactionOrMinion)
262 if (CC.HasElement(1214))
272 CC.ModExp(302, CC.IsPC ? 10 : 50);
276 num4 =
EClass.
rnd(num4 * 100 / (100 + num5 * 10 + 1));
279 CC.ModExp(302, CC.IsPC ? 20 : 100);
286 if ((CC.HasElement(1214) || (!CC.IsPC && (CC.IsPCFaction || CC.IsPCFactionMinion) &&
EClass.
pc.
HasElement(1214))) &&
EClass.
rnd(5) != 0)
293 if (lang ==
"spell_hand")
295 string[] list2 =
Lang.
GetList(
"attack" + (CC.isChara ? CC.Chara.race.meleeStyle.IsEmpty(
"Touch") :
"Touch"));
296 string @ref =
"_elehand".lang(e.source.GetAltname(2), list2[4]);
297 CC.Say(c.
IsPCParty ?
"cast_hand_ally" :
"cast_hand", CC, c, @ref, c.
IsPCParty ? list2[1] : list2[2]);
301 CC.Say(lang +
"_hit", CC, c, e.
Name.ToLower());
304 Chara chara = (CC.isChara ? CC.Chara : ((actref.refThing !=
null) ?
EClass.
_map.
FindChara(actref.refThing.c_uidRefCard) :
null));
323 num4 = num4 * Act.powerMod / 100;
324 c.
DamageHP(num4, e.id, power * num / 100, attackSource, chara ?? CC);
327 int num6 = num4 * num / 100;
328 Debug.Log(num4 +
" v:" + num6 +
" evalue:" + e.Value +
" power:" + power +
" elepMod:" + num);
334 CC.Chara.mana.Mod(num6);
350 EffectId.Suicide => CC.LV / 3 + 40,
351 EffectId.Meteor => 50 + power / 20,
352 _ => (actref.refThing !=
null) ? actref.refThing.material.hardness : (30 + power / 20),
354 bool flag5 = EClass._zone.HasLaw && !EClass._zone.IsPCFaction && (CC.IsPC || (
id == EffectId.Explosive && actref.refThing ==
null)) && !(EClass._zone is
Zone_Vernis);
390 p.
ModFire(-20, extinguish:
true);
395 foreach (
Card item3
in list)
411 bool flag2 = isNeg || flag;
427 if (list7.Count == 0)
431 CC.
Say(
"spell_earthquake", CC, element.
Name.ToLower());
441 DamageEle(CC,
id, power, element, list7, actRef,
"spell_earthquake");
450 if (list4.Count == 0)
454 CC.
Say(
"spell_ball", CC, element.
Name.ToLower());
464 DamageEle(CC,
id, power, element, list4, actRef,
"spell_ball");
472 List<Point> list =
new List<Point>();
490 lang =
"spell_sword";
497 if (!
DamageEle(cC, id3, power, e, list, actref, (
string)lang))
499 CC.
Say(
"spell_hand_miss", CC, element.
Name.ToLower());
505 List<Point> list5 =
new List<Point>();
506 list5.Add(tp.
Copy());
507 CC.
Say(
"spell_arrow", CC, element.
Name.ToLower());
513 DamageEle(CC,
id, power, element, list5, actRef,
"spell_arrow");
518 CC.
Say(
"summon_ally", CC);
521 CC.
Say(
"summon_ally_fail", CC);
524 string id4 = actRef.n1;
534 num3 = Mathf.Clamp(power / 100, 1, 5) + ((power >= 100) ?
EClass.
rnd(2) : 0);
541 case "special_force":
552 for (
int j = 0; j < num3; j++)
559 if (point ==
null || !point.
IsValid)
571 chara = actRef.n1
switch
588 num6 = ((!(actRef.n1 ==
"shadow")) ? (chara.LV * (100 + power / 10) / 100 + power / 30) : (power / 10 + 1));
598 string n = actRef.n1;
599 if (!(n ==
"shadow"))
601 if (n ==
"special_force")
608 chara.hp = chara.MaxHP / 2;
611 if (!(actRef.n1 ==
"monster") || actRef.refThing ==
null)
623 CC.
Say(
"summon_ally_fail", CC);
631 CC.
Say(
"summon_ally_fail", CC);
634 CC.
Say(
"spell_funnel", CC, element.
Name.ToLower());
639 chara2.
SetLv(power / 15);
649 if (list3.Count == 0)
653 CC.
Say(
"spell_breathe", CC, element.
Name.ToLower());
663 DamageEle(CC,
id, power, element, list3, actRef,
"spell_breathe");
687 float radius2 = ((
id ==
EffectId.Suicide) ? 3.5f : ((
float)((
id ==
EffectId.BallBubble) ? 2 : 5)));
688 if (
id ==
EffectId.Explosive && actRef.refThing !=
null)
690 radius2 = 2 + actRef.refThing.Evalue(666);
707 bool flag4 =
id == EffectId.Explosive ||
id ==
EffectId.Suicide;
709 if (list6.Count == 0)
713 cc.
Say((
id ==
EffectId.Suicide) ?
"abSuicide" :
"spell_ball", cc, element.
Name.ToLower());
723 DamageEle(actRef.origin ?? cc,
id, power, element, list6, actRef, (
id ==
EffectId.Suicide) ?
"suicide" :
"spell_ball");
733 if (list2.Count == 0)
737 CC.
Say(
"spell_bolt", CC, element.
Name.ToLower());
747 DamageEle(CC,
id, power, element, list2, actRef,
"spell_bolt");
757 CC.
Say(
"ab" +
id, CC);
763 EffectId.MistOfDarkness => 6,
764 EffectId.Bubble => 5,
765 EffectId.Puddle => 4,
770 if (
id ==
EffectId.Bubble && CC.
id ==
"cancer")
775 for (
int i = 0; i < num; i++)
800 List<Card> list8 = tp.
ListCards().ToList();
802 if (list8.Contains(CC))
808 foreach (
Card item2
in list8)
810 if (tc ==
null || item2 == tc)
812 Proc(
id, power, state, CC, item2, actRef);
813 if (flag2 && item2.
isChara && item2 != CC)
815 CC.DoHostileAction(item2);
817 if (actRef.refThing ==
null || !(actRef.refThing.trait is
TraitRod) || (uint)(
id - 200) <= 4u)
826 CC.SayNothingHappans();
845 int orgPower = power;
854 Point randomPoint = CC.
pos.
GetRandomPoint(2, requireLos:
false, allowChara:
false, allowBlocked:
false, 200);
857 CC.
Say(
"split_fail", CC);
870 CC.
Say(
"escape", CC);
883 if (list2.Count == 0)
891 item.PlayEffect(
"vanish");
903 thing.c_idRefCard =
"dog_mine";
904 Zone.ignoreSpawnAnime =
true;
916 CC.
Say(
"abMagicMap_curse", CC);
922 CC.
Say(
"abMagicMap", CC);
940 Dice dice =
Dice.
Create(
"ActManaAbsorb", power, CC, (actRef.refThing !=
null) ? null : actRef.act);
942 TC.PlaySound(
"heal");
943 TC.PlayEffect(
"heal");
946 CC.
Say(
"absorbMana", CC);
958 TC.PlaySound(
"curse3");
959 TC.PlayEffect(
"curse");
960 TC.Say(
"forgetItems",
TC);
961 int num2 = power / 50 + 1 +
EClass.
rnd(3);
962 List<Thing> source =
TC.things.List((
Thing t) => t.c_IDTState == 0);
963 for (
int i = 0; i < num2; i++)
965 source.RandomItem().c_IDTState = 5;
974 bool armor =
id == EffectId.EnchantArmor ||
id ==
EffectId.EnchantArmorGreat;
975 bool flag4 =
id == EffectId.EnchantWeaponGreat ||
id ==
EffectId.EnchantArmorGreat;
985 cc.
Say(
"enc_curse", tc);
989 int num5 = (flag4 ? 4 : 2) + (blessed ? 1 : 0);
990 if (tc.
encLV >= num5)
992 cc.
Say(
"enc_resist", tc);
1002 bool flag5 =
id ==
EffectId.GreaterIdentify;
1052 int num = (tc.isWeightChanged ? tc.c_weight : tc.
Thing.
source.weight);
1053 tc.isWeightChanged =
true;
1061 num = (int)(0.01f * (
float)num * (float)power * 0.75f + 500f);
1062 if (num < 0 || num > 10000000)
1080 cc.
Say(
"lighten_curse", cc, tc);
1084 num = num * (100 - power / 10) / 100;
1102 cc.
Say(
"lighten", cc, tc);
1126 cc.
Say(
"reconstruct", cc, tc);
1127 EClass.game.cards.uidNext +=
EClass.
rnd(30);
1131 CC.
Pick(thing3, msg:
false);
1138 case EffectId.ChangeMaterialLesser:
1140 case EffectId.ChangeMaterialGreater:
1152 string name = tc.
Name;
1155 bool num3 =
id ==
EffectId.ChangeMaterialGreater;
1156 bool flag3 =
id ==
EffectId.ChangeMaterialLesser;
1176 num4 = Mathf.Clamp(num4 +
EClass.
rnd(2), 0, 4);
1179 text2 = ((text2 ==
"metal") ?
"leather" :
"metal");
1182 for (
int j = 0; j < 1000; j++)
1193 if ((tc.
id ==
"log" || tc.
id ==
"branch") && tc.material.alias ==
"carbone")
1209 cc.
Say(
"materialChanged", name, row.GetName());
1242 Msg.
Say(
"returnNowhere");
1255 EClass.player.returnInfo =
null;
1305 Thing t3 =
ThingGen.
Create(
new string[6] {
"330",
"331",
"334",
"335",
"336",
"1142" }.RandomItem());
1328 TC.pos.PlayEffect(
"holyveil");
1329 TC.pos.PlaySound(
"holyveil");
1330 TC.pos.PlaySound(
"atk_eleSound");
1331 TC.conditions.ForeachReverse(delegate(
Condition c)
1338 TC.Say(
"abShutterHex",
TC);
1339 TC.pos.ForeachNeighbor(delegate(
Point p)
1343 if (!item3.IsFriendOrAbove(CC))
1345 int num10 = Dice.Create(
"SpShutterHex", power, CC, (actRef.refThing != null) ? null : actRef.act).Roll();
1346 item3.DamageHP(num10 * hex2, 919, power, AttackSource.None, CC);
1359 CC.
Say(
"abDraw", CC,
TC);
1366 if (CC.
id ==
"tentacle")
1378 if (
TC.Evalue(426) > 0)
1380 TC.Say((actRef.n1 ==
"money") ?
"abStealNegateMoney" :
"abStealNegate",
TC);
1383 Thing thing4 =
null;
1384 bool flag8 = actRef.n1 ==
"food";
1385 if (actRef.n1 ==
"money")
1397 Func<Thing, bool> func = (
Thing t) =>
true;
1400 func = (
Thing t) => t.IsFood;
1402 List<Thing> list3 =
TC.things.List(delegate(
Thing t)
1408 return t.trait.CanBeDestroyed && t.things.Count == 0 && t.invY != 1 && t.trait.CanBeStolen && !t.trait.CanOnlyCarry && !t.IsUnique && !t.isEquipped && t.blessedState == BlessedState.Normal && func(t);
1409 }, onlyAccessible:
true);
1410 if (list3.Count > 0)
1412 thing4 = list3.RandomItem();
1415 thing4 = thing4.
Split(1);
1422 CC.
Say(
"abStealNothing", CC,
TC);
1427 CC.
Pick(thing4, msg:
false);
1429 if (actRef.n1 ==
"food")
1438 CC.
Say(
"abStealEscape", CC);
1439 CC.
Teleport(GetTeleportPos(tc.
pos, 30), silent:
true);
1448 if (CC !=
null && CC !=
TC)
1450 TC.Say(
"curse", CC,
TC);
1452 TC.PlaySound(
"curse3");
1453 TC.PlayEffect(
"curse");
1454 if (
EClass.
rnd(150 +
TC.LUC * 5 +
TC.Evalue(972) * 20) >= power + (flag ? 200 : 0) ||
TC.TryNullifyCurse())
1458 List<Thing> list5 =
TC.things.List(delegate(
Thing t)
1466 if (list5.Count == 0)
1471 Thing thing6 = list5.RandomItem();
1472 TC.Say(
"curse_hit",
TC, thing6);
1480 TC.Say(
"uncurseEQ" + (blessed ?
"_bless" : (flag ?
"_curse" :
"")),
TC);
1481 TC.PlaySound(
"uncurse");
1482 TC.PlayEffect(
"uncurse");
1490 List<Thing> list =
new List<Thing>();
1491 TC.things.Foreach(delegate(
Thing t)
1496 if (t.blessedState == BlessedState.Cursed)
1498 num9 = EClass.rnd(200);
1502 num9 = EClass.rnd(1000);
1508 if (
id ==
EffectId.UncurseEQGreater)
1514 TC.Say(
"uncurseEQ_success", t);
1530 foreach (
Thing item4
in list)
1534 if (success == 0 && fail == 0)
1536 TC.SayNothingHappans();
1540 TC.Say(
"uncurseEQ_fail");
1546 string text3 = actRef.n1;
1551 if (!text4.IsEmpty())
1558 if (!actRef.aliasEle.IsEmpty())
1560 con.SetElement(EClass.sources.elements.alias[actRef.aliasEle].id);
1563 condition.isPerfume = TC.IsPC && actRef.
isPerfume;
1564 Condition condition2 =
TC.AddCondition(condition);
1565 if (condition2 !=
null && condition2.
isPerfume)
1567 condition2.value = 3;
1570 if (!text4.IsEmpty())
1572 CC.DoHostileAction(
TC);
1579 bool hex = CC.IsHostile(
TC);
1582 for (
int l = 0; l < 4 +
EClass.
rnd(2); l++)
1600 CC.DoHostileAction(
TC);
1601 bool isPowerful =
TC.IsPowerful;
1602 string n = actRef.n1;
1603 if (n ==
"ConSuffocation")
1605 power = power * 2 / 3;
1608 int num8 = TC.WIL * (isPowerful ? 20 : 5);
1610 if (condition3 !=
null)
1612 num8 += condition3.power * 5;
1616 TC.Say(
"debuff_resist",
TC);
1617 CC.DoHostileAction(
TC);
1622 con.givenByPcParty = CC.IsPCParty;
1623 if (!actRef.aliasEle.IsEmpty())
1628 if (n ==
"ConBane" && CC.HasElement(1416))
1632 CC.DoHostileAction(
TC);
1640 TC.MutateRandom(1, 100, ether:
false, state);
1647 TC.MutateRandom(-1, 100, ether:
false, state);
1667 if (blessed || flag)
1671 Dialog.
InputName(
"dialogWish",
"q", delegate(
bool cancel,
string text)
1688 tc.
Say(
"faith_curse", tc,
faith.Name);
1693 tc.
Say(
"faith_bless", tc,
faith.Name);
1695 tc.
ModExp(306, power * 10);
1696 tc.
ModExp(85, power * 10);
1708 int gender2 = gender
switch
1721 if (blessed && tc.
bio.
age > 1)
1723 tc.
Say(
"ageDown", tc);
1728 tc.
Say(
"ageUp", tc);
1736 Debug.Log(power +
"/" +
id.ToString() +
"/" + actRef.n1);
1741 if (power < 0 ||
id ==
EffectId.DebuffStats)
1743 power = Mathf.Abs(power);
1757 List<KeyValuePair<int, Chara>> list7 =
EClass.
game.
cards.
globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon && a.Value.c_wasInPcParty).ToList();
1758 if (
TC.IsPCFaction ||
TC.IsPCFactionMinion)
1760 if (
TC.IsPC && list7.Count == 0)
1762 list7 =
EClass.
game.
cards.
globalCharas.Where((KeyValuePair<int, Chara> a) => a.Value.CanRevive() && a.Value.isDead && a.Value.faction == EClass.pc.faction && !a.Value.isSummon).ToList();
1764 if (list7.Count > 0)
1766 list7.RandomItem().Value.Chara.GetRevived();
1770 TC.SayNothingHappans();
1779 bool flag7 =
id == EffectId.DamageBody ||
id ==
EffectId.DamageBodyGreat;
1780 bool mind2 =
id == EffectId.DamageMind ||
id ==
EffectId.DamageMindGreat;
1781 int num6 = ((
id == EffectId.DamageBody ||
id ==
EffectId.DamageMind) ? 1 : (4 +
EClass.
rnd(4)));
1790 TC.PlayEffect(
"debuff");
1791 TC.PlaySound(
"debuff");
1793 TC.Say(flag7 ?
"damageBody" :
"damageMind",
TC);
1794 for (
int k = 0; k < num6; k++)
1796 TC.DamageTempElements(power, flag7, mind2,
id !=
EffectId.Weaken);
1809 bool flag6 =
id == EffectId.EnhanceBody ||
id ==
EffectId.EnhanceBodyGreat;
1810 bool mind =
id == EffectId.EnhanceMind ||
id ==
EffectId.EnhanceMindGreat;
1815 TC.Say(flag6 ?
"enhanceBody" :
"enhanceMind",
TC);
1816 TC.PlayEffect(
"buff");
1817 TC.PlaySound(
"buff");
1818 TC.EnhanceTempElements(power, flag6, mind, onlyRenew:
true);
1824 bool flag9 =
id ==
EffectId.RestoreBody;
1830 TC.Say(flag9 ?
"restoreBody" :
"restoreMind",
TC);
1831 TC.PlaySound(
"heal");
1832 TC.PlayEffect(
"heal");
1842 TC.CureHost(
CureType.HealComplete, power, state);
1843 TC.Say(
"heal_heavy",
TC);
1852 if (actRef.act !=
null)
1854 Debug.Log(actRef.act.id);
1856 int num7 =
Dice.
Create((actRef.act !=
null &&
EClass.
sources.
calc.map.ContainsKey(actRef.act.ID)) ? actRef.act.ID :
"SpHealLight", power, CC, (actRef.refThing !=
null) ?
null : actRef.act).
Roll();
1857 if (actRef.refThing !=
null)
1859 num7 = num7 * (100 + actRef.refThing.Evalue(7500)) / 100;
1863 TC.DamageHP(num7 / 2, 919, power);
1866 TC.HealHPHost(num7, (actRef.refThing ==
null &&
id !=
EffectId.JureHeal) ? HealSource.Magic :
HealSource.Item);
1868 TC.Say((power >= 300) ?
"heal_heavy" :
"heal_light",
TC);
1874 TC.Say(
"heal_jure",
TC);
1877 CC.Cuddle(
TC, headpat:
true);
1890 CC.Say(
"removeHex",
TC, item5.
Name.ToLower());
1901 TC.PlaySound(
"heal");
1902 TC.PlayEffect(
"heal");
1905 TC.Say(
"cureCorruption_curse",
TC);
1907 TC.ModCorruption(power);
1911 TC.Say(
"cureCorruption",
TC);
1912 TC.ModCorruption(-power * (blessed ? 150 : 200) / 100);
1920 TC.Say(
"drinkRamune",
TC);
1924 TC.Say(
"drinkGood",
TC);
1930 TC.Say(
"drinkMilk",
TC);
1947 TC.Say(
"drinkWater_dirty",
TC);
1953 TC.Say(
"drinkWater_clear",
TC);
1959 TC.Say(
"drinkWater_dirty",
TC);
1967 if (
TC.HasElement(1211))
1969 TC.Say(
"drinkSaltWater_snail",
TC);
1970 int dmg = ((TC.hp > 10) ? (
TC.hp -
EClass.
rnd(10)) : 10000);
1975 TC.Say(
"drinkSaltWater",
TC);
1980 if (
TC.HasElement(1215))
1982 TC.Say(
"drunk_dwarf",
TC);
2138 if (list4.Count != 0)
2140 Thing thing5 = list4.RandomItem();
2141 TC.Say(
"acid_hit",
TC);
2144 TC.Say(
"acid_nullify", thing5);
2146 else if (thing5.
encLV > -5)
2148 TC.Say(
"acid_rust",
TC, thing5);
2160 TC.DamageHP(power / 5, actRef.idEle, power);
2171 TC.Say(
"drink_acid",
TC);
2172 TC.DamageHP(power / 5, 923, power);
2175 Msg.
Say(
"nothingHappens");
2183 TC.Say(
"love_curse_self",
TC);
2187 TC.Say(
"love_curse", CC,
TC);
2188 TC.ModAffinity(CC, -power / 4, show:
false);
2190 TC.ShowEmo(
Emo.angry);
2194 LoveMiracle(
TC, CC, power,
id ==
EffectId.LovePlus, state);
2200 if (
TC.HasElement(1532))
2202 TC.SetMutation(1532);
2206 TC.SetMutation(1533, 1);
2213 if (
TC.HasElement(1533))
2215 TC.SetMutation(1533);
2219 TC.SetMutation(1532, 1);
2222 TC.PlayEffect(
"aura_heaven");
2223 TC.PlaySound(
"godbless");
2226 TC.Say(
"grow_hair_fail",
TC);
2229 TC.Say(
"grow_hair",
TC);
2238 Proc(_id, orgPower, _state, cc, tc, _ref1);
2244 tc.
Say(
"eat_poison", tc);
2246 if (power > 100000000)
2250 int num = (int)Mathf.Sqrt(power * 100);
2262 tc.
Say(
"love_ground", tc);
2266 tc.
Say(
"love_chara", c, tc);
2273 tc.
MakeMilk(effect:
true, 1, addToZone:
true, state);
2277 tc.
MakeEgg(effect:
true, 1, addToZone:
true, plus ? 3 : 20, state);
2291 tc.
Say(
"love_ground", tc);
2295 tc.
Say(
"love_chara", c, tc);
2304 for (
int i = 0; i < 10000; i++)
2320 string netMsg =
GameLang.
Parse(
"wish".langGame(), thirdPerson:
true, name, s);
2322 List<WishItem> list =
new List<WishItem>();
2323 int wishLv = 10 + power / 4;
2324 int wishValue = 5000 + power * 50;
2327 wishLv = wishLv * 150 / 100;
2331 wishLv = wishLv * 150 / 100;
2334 Debug.Log(power +
"/" + wishValue);
2335 string _s = s.ToLower();
2343 if (
item.IsValidArtifact(r.
id))
2370 string text = r.
GetName().ToLower();
2371 int score = Compare(_s, text);
2384 if (category.IsChildOf(
"weapon") || category.IsChildOf(
"armor") || category.IsChildOf(
"ranged"))
2386 CardBlueprint.SetRarity(Rarity.Legendary);
2391 bool flag2 = thing.trait is
TraitDeed || thing.rarity >=
Rarity.Artifact || thing.
source._origin ==
"artifact_summon";
2395 thing.c_charges = 0;
2398 num = EClass.rndHalf(wishValue * 3);
2401 num = EClass.rndHalf(wishValue / 500 + 4);
2404 num = EClass.rndHalf(wishValue / 500 + 4);
2407 num = EClass.rndHalf(wishValue / 2000 + 4);
2410 if (!flag2 && thing.trait.CanStack)
2412 int num2 = wishValue;
2414 for (int i = 1; i < 1000; i++)
2416 int num3 = price + i * 2 * (price + 500);
2417 if (num3 > 0 && num2 > num3)
2426 if (price > 2500 && num > 3)
2428 num = 3 + (int)Mathf.Sqrt(num - 3);
2430 if (price > 5000 && num > 2)
2432 num = 2 + (int)Mathf.Sqrt(num - 2) / 2;
2434 if (price > 10000 && num > 1)
2436 num = 1 + Mathf.Min((
int)Mathf.Sqrt(num - 1) / 3, 2);
2443 Debug.Log(_s +
"/" + num +
"/" + score);
2444 if (thing.HasTag(
CTAG.godArtifact))
2461 if (list.Count == 0)
2463 netMsg = netMsg + Lang.space +
"wishFail".langGame();
2471 list.Sort((WishItem a, WishItem b) => b.score - a.score);
2472 foreach (WishItem item2
in list)
2474 Debug.Log(item2.score +
"/" + s +
"/" + item2.n);
if(item3.idFile==idFirstFile &&item3.id==idFirstTopic)
static void Poison(Chara tc, Chara c, int power)
static void Proc(EffectId id, int power, BlessedState state, Card cc, Card tc=null, ActRef actRef=default(ActRef))
static void GeneMiracle(Chara tc, Chara c, DNA.Type type)
static Point GetTeleportPos(Point org, int radius=6)
static int Compare(string s, string t)
static void TryDelay(Action a)
static void Proc(EffectId id, Card cc, Card tc=null, int power=100, ActRef actRef=default(ActRef))
static void LoveMiracle(Chara tc, Chara c, int power, bool plus=false, BlessedState? state=null)
static bool DamageEle(Card CC, EffectId id, int power, Element e, List< Point > points, ActRef actref, string lang=null)
static bool Wish(string s, string name, int power, BlessedState state)
static void ProcAt(EffectId id, int power, BlessedState state, Card cc, Card tc, Point tp, bool isNeg, ActRef actRef=default(ActRef))
static EffectIRenderer Throw(Card c, Point p, Thing t, ThrowMethod method=ThrowMethod.Default, float failChance=0f)
virtual int ElementPowerMod
void SetInt(int id, int value=0)
void SetRefVal(int a, int b)
virtual ConditionType Type
static int GetColorInt(ref Color matColor, int p)
static void Set(CardBlueprint _bp)
GlobalCharaList globalCharas
virtual string GetName(int i)
void Teleport(Point point, bool silent=false, bool force=false)
ElementContainerCard elements
void DamageHP(int dmg, AttackSource attackSource=AttackSource.None, Card origin=null)
bool HasElement(int ele, int req=1)
SourceMaterial.Row material
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
virtual int GetPrice(CurrencyType currency=CurrencyType.Money, bool sell=false, PriceType priceType=PriceType.Default, Chara c=null)
void Talk(string idTopic, string ref1=null, string ref2=null, bool forceSync=false)
Thing GiveBirth(Thing t, bool effect)
virtual void SetBlessedState(BlessedState s)
bool IsInMutterDistance(int d=10)
Effect PlayEffect(string id, bool useRenderPos=true, float range=0f, Vector3 fix=default(Vector3))
virtual bool IsAliveInCurrentZone
Thing MakeMilk(bool effect=true, int num=1, bool addToZone=true, BlessedState? state=null)
BlessedState blessedState
void ModExp(string alias, int a)
void Say(string lang, string ref1=null, string ref2=null)
Thing MakeEgg(bool effect=true, int num=1, bool addToZone=true, int fertChance=20, BlessedState? state=null)
SourceMaterial.Row matObj
bool HasZoneStairs(bool includeLocked=true)
void UnqeuipIfTooHeavy(Thing t)
static Chara CreateFromElement(string idEle, int lv=-1, string idFilter="chara")
static Chara CreateFromFilter(string id, int lv=-1, int levelRange=-1)
static Chara Create(string id, int lv=-1)
override bool IsAliveInCurrentZone
bool TryNeckHunt(Chara TC, int power, bool harvest=false)
void InstantEat(Thing t=null, bool sound=true)
Condition AddCondition(string id, int p=100, bool force=false)
void ModAffinity(Chara c, int a, bool show=true, bool showOnlyEmo=false)
bool CanSeeLos(Card c, int dist=-1)
bool HasCondition(string alias)
override void Die(Element e=null, Card origin=null, AttackSource attackSource=AttackSource.None)
void SetMainElement(string id, int v=0, bool elemental=false)
override bool IsPCFaction
override bool IsPCPartyMinion
void MakeMinion(Chara _master, MinionType type=MinionType.Default)
void MakeAlly(bool msg=true)
void AddCooldown(int idEle, int turns=0)
Thing MakeGene(DNA.Type? type=null)
void DoHostileAction(Card _tg, bool immediate=false)
void RequestProtection(Chara attacker, Action< Chara > action)
bool TryEquip(Thing t, bool useFav=false)
void SetSummon(int duration)
Thing Pick(Thing t, bool msg=true, bool tryStack=true)
UD_String_Color elementColors
void Kill(bool silent=false)
static Condition Create(string alias, int power=100, Action< Condition > onCreate=null)
static Type GetType(string idMat)
void Generate(Type _type, Chara model=null)
static Dialog InputName(string langDetail, string text, Action< bool, string > onClose, InputType inputType=InputType.Default)
static int RollMax(int num, int sides, int bonus=0)
static int Roll(int num, int sides, int bonus=0, Card card=null)
static Dice Create(Element ele, Card c)
static ColorProfile Colors
static void Wait(float a, Card c)
static SourceManager sources
static int rndHalf(int a)
static GameSetting setting
static void Create(Point center, int radius, int count, Action< int, Point > onComplete)
static Effect Get(Effect original)
Effect SetStartDelay(float a)
void Play(float delay, Point from, float fixY=0f, Point to=null, Sprite sprite=null)
Effect SetParticleColor(Color c)
List< Element > ListElements(Func< Element, bool > shoudList=null, Comparison< Element > comparison=null)
Dictionary< int, Element > dict
Element ModTempPotential(int ele, int v, int threshMsg=0)
Element ModBase(int ele, int v)
Element SetBase(string alias, int v, int potential=0)
Element GetOrCreateElement(Element ele)
static int[] List_MainAttributes
static int GetId(string alias)
static Element Create(int id, int v=0)
static string Parse(string text, bool thirdPerson, string val1, string val2=null, string val3=null, string val4=null)
bool disableUsermapBenefit
UD_String_ElementRef elements
ReligionManager religions
static string Name(int g)
static bool Has(string id)
static string[] GetList(string id)
static LayerDragGrid CreateEnchant(Chara cc, bool armor, bool superior=false, BlessedState state=BlessedState.Normal, int count=1)
static LayerDragGrid CreateChangeMaterial(Chara cc, Thing consume, SourceMaterial.Row mat, EffectId idEffect, BlessedState state=BlessedState.Normal, int price=0, int count=1)
static LayerDragGrid CreateLighten(Chara cc, BlessedState state=BlessedState.Normal, int price=0, int count=1)
static LayerDragGrid CreateUncurse(Chara cc, BlessedState state=BlessedState.Normal, int price=0, int count=1)
static LayerDragGrid CreateReconstruction(Chara cc, BlessedState state=BlessedState.Normal, int price=0, int count=1)
static LayerDragGrid CreateIdentify(Chara cc, bool superior=false, BlessedState state=BlessedState.Normal, int price=0, int count=1)
static void SetDirty(Thing t)
Chara FindChara(string id)
void TryShatter(Point pos, int ele, int power)
List< Point > ListPointsInArc(Point center, Point to, int radius, float angle)
void Reveal(Point center, int power=100)
void MineObj(Point point, Task task=null, Chara c=null)
void MineBlock(Point point, bool recoverBlock=false, Chara c=null, bool mineObj=true)
List< Point > ListPointsInLine(Point center, Point to, int radius)
void SetEffect(int x, int z, CellEffect effect=null)
List< Point > ListPointsInCircle(Point center, float radius, bool mustBeWalkable=true, bool los=true)
void RevealAll(bool reveal=true)
static bool IsThirdPerson(Card c)
static ThirstPersonInfo thirdPerson1
static string SayNothingHappen()
static string GetName(Card c)
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
static async UniTask< bool > SendChat(string name, string msg, ChatCategory cat, string idLang)
SourceMaterial.Row matBlock
List< Card > ListCards(bool includeMasked=false)
Point Set(int _x, int _z)
void ModFire(int value, bool extinguish=false)
SoundSource PlaySound(string id, bool synced=true, float v=1f, bool spatial=true)
bool Equals(int _x, int _z)
List< Chara > ListCharas()
Point GetRandomNeighbor()
void Animate(AnimeID id, bool animeBlock=false)
Point GetNearestPoint(bool allowBlock=false, bool allowChara=true, bool allowInstalled=true, bool ignoreCenter=false)
Point GetRandomPoint(int radius, bool requireLos=true, bool allowChara=true, bool allowBlocked=false, int tries=100)
ReligionTrickery Trickery
static Thing Reforge(string id, Point pos=null, bool first=true)
void Talk(string idTalk, Card c=null, Card agent=null)
static void ShakeCam(string id="default", float magnitude=1f)
Dictionary< string, CardRow > map
static Dictionary< string, TierList > tierMap
List< Zone > ListReturnLocations()
static SpawnList Get(string id, Func< SourceChara.Row, bool > func)
static Thing Create(string id, int idMat=-1, int lv=-1)
override CardRow sourceCard
Thing Identify(bool show=true, IDTSource idtSource=IDTSource.Identify)
static void BadEffect(Chara c)
virtual bool CanBeAttacked
static void Reserve(string idStep, Action onBeforePlay=null)
static void Play(string idStep)
bool ContainsKey(TKey key)
bool TryGetValue(TKey key, out TValue value)
int CountMinions(Chara c)
Card AddCard(Card t, Point point)