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 : (
EClass.
sources.
calc.map.ContainsKey(
"Sp" + text) ? (
"Sp" + text) : (text.ToLowerInvariant() +
"_")));
60 foreach (
Point p
in points)
76 text2 =
"SpEarthquake";
84 if (CC.isChara && p.
Equals(CC.pos) && points.Count >= 2)
104 effect.sr.color = elementRef.colorSprite;
106 TrailRenderer componentInChildren = effect.GetComponentInChildren<TrailRenderer>();
107 Color startColor = (componentInChildren.endColor = elementRef.colorSprite);
108 componentInChildren.startColor = startColor;
118 float num3 = 0.06f * (float)CC.pos.Distance(p);
120 TweenUtil.Tween(num3,
null, delegate
132 effect =
Effect.
Get(
"Element/ball_" + ((e.id == 0) ?
"Void" : ((
id ==
EffectId.GravityGun) ?
"Gravity" : e.source.alias.Remove(0, 3))));
135 effect =
Effect.
Get(
"Element/ball_Fire");
137 float startDelay = ((
id ==
EffectId.Meteor) ? 0.1f : 0.04f) * (float)CC.pos.Distance(p);
142 float duration = 0.06f * (float)CC.pos.Distance(p);
144 TweenUtil.Tween(duration,
null, delegate
162 effect.
Play(CC.pos, 0f, p);
169 effect.
Play(p).Flip(p.
x > CC.pos.x);
181 if (CC.IsPCFactionOrMinion && (CC.HasElement(1651) ||
EClass.
pc.
Evalue(1651) >= 2))
188 if (
item.IsPCFactionOrMinion)
193 else if ((e.id != 910 && e.id != 911) || !
item.IsFood || !
item.category.IsChildOf(
"foodstuff"))
251 bool isChara = CC.isChara;
255 num4 = num4 * 100 / (50 + point.Distance(p) * 75);
263 Dice dice =
Dice.
Create(text2, power, CC, (actref.refThing !=
null) ? null : actref.act);
282 num4 = num4 * (int)Mathf.Min(70f + Mathf.Sqrt(CC.Evalue(101)) * 3f, 200f) / 100;
290 num4 = num4 * 100 / (90 + point.Distance(p) * 10);
298 if ((actref.noFriendlyFire && !CC.Chara.IsHostile(c as
Chara)) || (flag && c == CC))
302 if (isChara && points.Count > 1 && c !=
null && c.
isChara && CC.isChara && CC.Chara.IsFriendOrAbove(c.
Chara))
304 int num5 = CC.Evalue(302);
305 if (!CC.IsPC && CC.IsPCFactionOrMinion)
309 if (CC.HasElement(1214))
319 CC.ModExp(302, CC.IsPC ? 10 : 50);
323 num4 =
EClass.
rnd(num4 * 100 / (100 + num5 * 10 + 1));
326 CC.ModExp(302, CC.IsPC ? 20 : 100);
333 if ((CC.HasElement(1214) || (!CC.IsPC && (CC.IsPCFaction || CC.IsPCFactionMinion) &&
EClass.
pc.
HasElement(1214))) &&
EClass.
rnd(5) != 0)
340 if (lang ==
"spell_hand")
342 string[] list2 =
Lang.
GetList(
"attack" + (CC.isChara ? CC.Chara.race.meleeStyle.IsEmpty(
"Touch") :
"Touch"));
343 string @ref =
"_elehand".lang(e.source.GetAltname(2), list2[4]);
344 CC.Say(c.
IsPCParty ?
"cast_hand_ally" :
"cast_hand", CC, c, @ref, c.
IsPCParty ? list2[1] : list2[2]);
348 CC.Say(lang +
"_hit", CC, c, e.
Name.ToLower());
351 Chara chara = (CC.isChara ? CC.Chara : ((actref.refThing !=
null) ?
EClass.
_map.
FindChara(actref.refThing.c_uidRefCard) :
null));
373 num4 = num4 * Act.powerMod / 100;
378 c.
DamageHP(num4, e.id, power * num / 100, attackSource, chara ?? CC);
386 AddCon<ConGravity>(1, power);
387 AddCon<ConBlind>(4, power);
388 AddCon<ConDim>(5, power / 2);
389 AddCon<ConSupress>(3, power / 2);
390 if (actref.refThing !=
null && actref.refThing.id ==
"gun_gravity2")
392 AddCon<ConEntangle>(4, power / 3);
393 AddCon<ConSilence>(4, power / 3);
394 AddCon<ConWeakResEle>(4, power);
395 AddCon<ConNightmare>(4, power);
402 long num6 = num4 * num / 100;
403 Debug.Log(num4 +
" v:" + num6 +
" evalue:" + e.Value +
" power:" + power +
" elepMod:" + num);
409 CC.Chara.mana.Mod((
int)num6);
423 void AddCon<T>(
int rate,
int power) where T :
Condition
435 EffectId.Suicide => CC.LV / 3 + 40,
436 EffectId.Meteor => 50 + power / 20,
437 _ => (actref.refThing !=
null) ? actref.refThing.material.hardness : (30 + power / 20),
439 bool flag5 = EClass._zone.HasLaw && !EClass._zone.IsPCFaction && (CC.IsPC || (
id == EffectId.Explosive && actref.refThing ==
null)) && !(EClass._zone is
Zone_Vernis);
475 p.
ModFire(-20, extinguish:
true);
480 foreach (
Card item3
in list)
496 bool flag2 = isNeg || flag;
516 CC.
Say(
"spell_earthquake", CC, element.
Name.ToLower());
526 DamageEle(CC,
id, power, element, list, actRef,
"spell_earthquake");
535 if (list3.Count == 0)
539 CC.
Say(
"spell_ball", CC, element.
Name.ToLower());
549 DamageEle(CC,
id, power, element, list3, actRef,
"spell_ball");
557 List<Point> list6 =
new List<Point>();
558 list6.Add(tp.
Copy());
564 if (!
DamageEle(CC,
id, power, element, list6, actRef, (
id ==
EffectId.DrainBlood ||
id ==
EffectId.DrainMana) ?
"" : ((
id ==
EffectId.Sword) ?
"spell_sword" :
"spell_hand")))
566 CC.
Say(
"spell_hand_miss", CC, element.
Name.ToLower());
574 List<Point> list7 =
new List<Point>();
575 list7.Add(tp.
Copy());
576 CC.
Say((
id ==
EffectId.MoonSpear) ?
"spell_spear" :
"spell_arrow", CC, element.
Name.ToLower());
582 DamageEle(CC,
id, power, element, list7, actRef, (
id ==
EffectId.MoonSpear) ?
"spell_spear" :
"spell_arrow");
587 string n = actRef.n1;
588 if (!(n ==
"special"))
596 if (!
item.pos.IsSunLit)
598 item.pos.PlayEffect(
"darkwomb3");
608 CC.
Say(
"summon_ally", CC);
618 CC.
Say(
"summon_ally_fail", CC);
621 string id3 = actRef.n1;
626 bool flag4 = actRef.n1 ==
"special";
633 num3 = Mathf.Clamp(power / 100, 1, 5) + ((power >= 100) ?
EClass.
rnd(2) : 0);
640 case "special_force":
651 num3 = Mathf.Clamp(7 + CC.
LV / 100, 4, 20);
660 for (
int j = 0; j < num3; j++)
668 if (point ==
null || !point.
IsValid)
676 CardBlueprint.current.lv = num5;
680 CardBlueprint.current.idEle = text;
747 if (!(n ==
"shadow"))
758 num7 = (CC.IsPCFactionOrMinion ? (CC.LV / 2) : (CC.
LV / 3 * 2));
762 num6 = chara.LV * (100 + power / 10) / 100 + power / 30;
776 num6 = power / 10 + 1;
780 chara.
SetLv((
int)num6);
788 if (!(n ==
"shadow"))
790 if (n ==
"special_force")
797 chara.hp = chara.MaxHP / 2;
802 Chara chara2 = chara;
804 chara2.hostility = hostility2;
806 else if (!(chara.
id ==
"cocoon") && (!(actRef.n1 ==
"monster") || actRef.refThing ==
null))
818 CC.
Say(
"summon_ally_fail", CC);
827 CC.
Say(
"summon_ally_fail", CC);
830 CC.
Say(
"spell_funnel", CC, element.
Name.ToLower());
835 chara3.
SetLv(Mathf.Abs(power) / 15);
845 if (list2.Count == 0)
849 CC.
Say(
"spell_breathe", CC, element.
Name.ToLower());
859 DamageEle(CC,
id, power, element, list2, actRef,
"spell_breathe");
886 float radius2 = ((
id ==
EffectId.GravityGun) ? 4f : ((
id ==
EffectId.Rocket) ? 2.8f : ((
id ==
EffectId.Suicide) ? 3.5f : ((
id ==
EffectId.Flare) ? 2.1f : ((float)((
id ==
EffectId.BallBubble) ? 2 : 5))))));
887 if ((
id ==
EffectId.Explosive ||
id ==
EffectId.Rocket) && actRef.refThing !=
null)
889 radius2 = 2 + actRef.refThing.Evalue(666);
906 bool flag5 =
id == EffectId.Explosive ||
id == EffectId.Suicide ||
id ==
EffectId.Rocket;
908 if (list5.Count == 0)
912 cc.
Say((
id ==
EffectId.Suicide) ?
"abSuicide" :
"spell_ball", cc, element.
Name.ToLower());
918 tp.PlayEffect(
"flare");
922 cc.PlaySound((id == EffectId.Flare) ?
"spell_flare" :
"spell_ball");
929 DamageEle(actRef.origin ?? cc,
id, power, element, list5, actRef, (
id ==
EffectId.Suicide) ?
"suicide" :
"spell_ball");
939 if (list4.Count == 0)
943 CC.
Say(
"spell_bolt", CC, element.
Name.ToLower());
953 DamageEle(CC,
id, power, element, list4, actRef,
"spell_bolt");
963 CC.
Say(
"ab" +
id, CC);
967 int id2 = ((
id ==
EffectId.Puddle) ? 4 : ((
id ==
EffectId.Bubble) ? 5 : ((
id ==
EffectId.MistOfDarkness) ? 6 : 7)));
970 if (
id ==
EffectId.Bubble && CC.
id ==
"cancer")
975 for (
int i = 0; i < num; i++)
1000 List<Card> list8 = tp.
ListCards().ToList();
1002 if (list8.Contains(CC))
1005 list8.Insert(0, CC);
1008 foreach (
Card item3
in list8)
1010 if (tc ==
null || item3 == tc)
1012 Proc(
id, power, state, CC, item3, actRef);
1013 if (flag2 && item3.
isChara && item3 != CC)
1015 CC.DoHostileAction(item3);
1017 if (actRef.refThing ==
null || !(actRef.refThing.trait is
TraitRod))
1022 if ((uint)(effectId - 200) <= 4u)
1031 CC.SayNothingHappans();
1050 int orgPower = power;
1051 if (blessed || flag)
1059 Point randomPoint = CC.
pos.
GetRandomPoint(2, requireLos:
false, allowChara:
false, allowBlocked:
false, 200);
1062 CC.
Say(
"split_fail", CC);
1067 CC.
Say(
"split", CC);
1075 CC.
Say(
"escape", CC);
1081 if (CC.
id ==
"bell_silver")
1094 CC.
Say(
"burn_mana", CC);
1102 if (list3.Count == 0)
1110 item.PlayEffect(
"vanish");
1122 thing3.c_idRefCard =
"dog_mine";
1123 Zone.ignoreSpawnAnime =
true;
1127 case EffectId.LittleSisterMigration:
1130 bool flag3 =
id ==
EffectId.SilverCatMigration;
1136 List<Chara> list2 =
new List<Chara>();
1151 if (list2.Count == 0)
1157 foreach (
Chara item2
in list2)
1162 Msg.
Say(flag3 ?
"cat_migration" :
"little_migration", list2.Count.ToString() ??
"");
1166 EClass.player.stats.catDepart += list2.Count;
1170 EClass.player.stats.sistersDepart += list2.Count;
1182 CC.
Say(
"abMagicMap_curse", CC);
1188 CC.
Say(
"abMagicMap", CC);
1206 Dice dice =
Dice.
Create(
"ActManaAbsorb", power, CC, (actRef.refThing !=
null) ? null : actRef.act);
1207 TC.mana.Mod(dice.
Roll());
1208 TC.PlaySound(
"heal");
1209 TC.PlayEffect(
"heal");
1212 CC.
Say(
"absorbMana", CC);
1224 TC.PlaySound(
"curse3");
1225 TC.PlayEffect(
"curse");
1226 TC.Say(
"forgetItems",
TC);
1227 int num4 = power / 50 + 1 +
EClass.
rnd(3);
1228 List<Thing> source =
TC.things.List((
Thing t) => t.c_IDTState == 0);
1229 for (
int i = 0; i < num4; i++)
1231 source.RandomItem().c_IDTState = 5;
1240 bool armor =
id == EffectId.EnchantArmor ||
id ==
EffectId.EnchantArmorGreat;
1241 bool flag7 =
id == EffectId.EnchantWeaponGreat ||
id ==
EffectId.EnchantArmorGreat;
1251 cc.
Say(
"enc_curse", tc);
1255 int num5 = (flag7 ? 4 : 2) + (blessed ? 1 : 0);
1256 if (tc.
encLV >= num5)
1258 cc.
Say(
"enc_resist", tc);
1268 bool flag6 =
id ==
EffectId.GreaterIdentify;
1318 int num3 = (tc.isWeightChanged ? tc.c_weight : tc.
Thing.
source.weight);
1319 tc.isWeightChanged =
true;
1327 num3 = (int)(0.01f * (
float)num3 * (float)power * 0.75f + 500f);
1328 if (num3 < 0 || num3 > 10000000)
1346 cc.
Say(
"lighten_curse", tc);
1350 num3 = num3 * (100 - power / 10) / 100;
1368 cc.
Say(
"lighten", tc);
1392 cc.
Say(
"reconstruct", tc);
1393 EClass.game.cards.uidNext +=
EClass.
rnd(30);
1397 blesstedState = state
1400 thing4.genLv = num6;
1404 if (thing4.
id ==
"amulet_engagement" || thing4.
id ==
"ring_engagement")
1412 thing4.rarity =
Rarity.Mythical;
1417 CC.
Pick(thing4, msg:
false);
1424 case EffectId.ChangeMaterialLesser:
1426 case EffectId.ChangeMaterialGreater:
1438 string name2 = tc.
Name;
1441 bool num7 =
id ==
EffectId.ChangeMaterialGreater;
1442 bool flag8 =
id ==
EffectId.ChangeMaterialLesser;
1462 num8 = Mathf.Clamp(num8 +
EClass.
rnd(2), 0, 4);
1465 text2 = ((text2 ==
"metal") ?
"leather" :
"metal");
1468 for (
int j = 0; j < 1000; j++)
1479 if ((tc.
id ==
"log" || tc.
id ==
"branch") && tc.material.alias ==
"carbone")
1495 cc.
Say(
"materialChanged", name2, row.GetName());
1518 string name = tc.
Name;
1521 bool flag2 = tc.rarity ==
Rarity.Legendary;
1524 rarity = (flag2 ? Rarity.Mythical :
Rarity.Legendary),
1535 foreach (
Element item4
in thing.elements.dict.Values.ToList().Shuffle())
1545 if ((uint)(id2 - 64) > 3u)
1551 if (flag2 && num >= 2)
1557 tc.isCrafted =
false;
1558 tc.rarity = (flag2 ? Rarity.Mythical :
Rarity.Legendary);
1568 c2.
Say(
"reconstruct", c2);
1575 List<string> list11 =
new List<string>();
1576 for (
int num17 = 0; num17 < 10; num17++)
1578 list11.Add(AliasGen.GetRandomAlias());
1581 }, delegate(
int a,
string b)
1584 c2.
Say(
"reconstruct", c2);
1594 CC.
Say(
"reconstruct", CC);
1608 Dialog.
InputName(
"dialogVoidReturn".lang(max.ToString() ??
""), max.ToString() ??
"", delegate(
bool cancel,
string text)
1612 destLv = Mathf.Abs(text.ToInt());
1613 destLv = Mathf.Clamp(destLv, 1, max) * -1;
1615 Debug.Log(destLv +
"/" + zone);
1621 Msg.
Say(
"returnComplete");
1622 EClass.player.uidLastTravelZone = 0;
1624 EClass.player.lastZonePos =
null;
1625 EClass.player.returnInfo =
null;
1652 Msg.
Say(
"returnNowhere");
1665 EClass.player.returnInfo =
null;
1715 Thing t3 =
ThingGen.
Create(
new string[6] {
"330",
"331",
"334",
"335",
"336",
"1142" }.RandomItem());
1721 List<Condition> list4 =
new List<Condition>();
1724 if (GetBlessingDifficulty(condition4) > 0 &&
EClass.
rnd(GetBlessingDifficulty(condition4)) == 0)
1726 list4.Add(condition4);
1729 if (list4.Count == 0)
1734 TC.pos.PlayEffect(
"holyveil");
1735 TC.pos.PlaySound(
"holyveil");
1736 TC.Say(
"unpolluted",
TC);
1769 TC.pos.PlayEffect(
"holyveil");
1770 TC.pos.PlaySound(
"holyveil");
1771 TC.pos.PlaySound(
"atk_eleSound");
1772 TC.conditions.ForeachReverse(delegate(
Condition c)
1779 TC.Say(
"abShutterHex",
TC);
1781 List<Chara> list10 =
TC.pos.ListCharasInRadius(
TC, 4, (
Chara c) => c ==
TC || c.IsHostile(CC));
1782 for (
int m = 0; m < num14; m++)
1784 TweenUtil.Delay((
float)m * 0.1f, delegate
1788 foreach (
Chara item6
in list10)
1793 TrailRenderer componentInChildren = effect.GetComponentInChildren<TrailRenderer>();
1795 componentInChildren.startColor = startColor;
1797 TweenUtil.Delay((
float)m * 0.1f, delegate
1799 effect.
Play(center, 0f, pos);
1801 int num15 =
Dice.
Create(
"SpShutterHex", power, CC, (actRef.refThing !=
null) ? null : actRef.act).Roll();
1810 if (CC.
Dist(
TC) <= 1 || (CC.IsPCFactionOrMinion && TC.IsPCFactionOrMinion &&
TC.isRestrained))
1819 if (point ==
null || !CC.
CanSeeLos(point))
1823 CC.
Say(
"abDraw", CC,
TC);
1831 if (CC.
id ==
"tentacle")
1840 if (nearbyCatToSniff !=
null)
1842 CC.
Sniff(nearbyCatToSniff);
1852 if (
TC.Evalue(426) > 0)
1854 TC.Say((actRef.n1 ==
"money") ?
"abStealNegateMoney" :
"abStealNegate",
TC);
1857 Thing thing7 =
null;
1858 bool flag11 = actRef.n1 ==
"food";
1859 if (actRef.n1 ==
"money")
1871 Func<Thing, bool> func = (
Thing t) =>
true;
1874 func = (
Thing t) => t.IsFood;
1876 List<Thing> list9 =
TC.things.List(delegate(
Thing t)
1882 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);
1883 }, onlyAccessible:
true);
1884 if (list9.Count > 0)
1886 thing7 = list9.RandomItem();
1889 thing7 = thing7.
Split(1);
1896 CC.
Say(
"abStealNothing", CC,
TC);
1901 CC.
Pick(thing7, msg:
false);
1903 if (actRef.n1 ==
"food")
1912 CC.
Say(
"abStealEscape", CC);
1913 CC.
Teleport(GetTeleportPos(tc.
pos, 30), silent:
true);
1922 if (CC !=
null && CC !=
TC)
1924 TC.Say(
"curse", CC,
TC);
1926 TC.PlaySound(
"curse3");
1927 TC.PlayEffect(
"curse");
1928 if (
EClass.
rnd(150 +
TC.LUC * 5 +
TC.Evalue(972) * 20) >= power + (flag ? 200 : 0) ||
TC.TryNullifyCurse())
1932 List<Thing> list5 =
TC.things.List(delegate(
Thing t)
1940 if (list5.Count == 0)
1945 Thing thing5 = list5.RandomItem();
1946 TC.Say(
"curse_hit",
TC, thing5);
1954 TC.Say(
"uncurseEQ" + (blessed ?
"_bless" : (flag ?
"_curse" :
"")),
TC);
1955 TC.PlaySound(
"uncurse");
1956 TC.PlayEffect(
"uncurse");
1964 List<Thing> list =
new List<Thing>();
1965 TC.things.Foreach(delegate(
Thing t)
1970 if (t.blessedState == BlessedState.Cursed)
1972 num16 = EClass.rnd(200);
1976 num16 = EClass.rnd(1000);
1982 if (
id ==
EffectId.UncurseEQGreater)
1988 TC.Say(
"uncurseEQ_success", t);
2004 foreach (
Thing item7
in list)
2008 if (success == 0 && fail == 0)
2010 TC.SayNothingHappans();
2014 TC.Say(
"uncurseEQ_fail");
2020 string text3 = actRef.n1;
2025 if (!text4.IsEmpty())
2032 if (!actRef.aliasEle.IsEmpty())
2034 con.SetElement(EClass.sources.elements.alias[actRef.aliasEle].id);
2037 condition.isPerfume = TC.IsPC && actRef.
isPerfume;
2038 Condition condition2 =
TC.AddCondition(condition);
2039 if (condition2 !=
null && condition2.
isPerfume)
2041 condition2.value = 3;
2044 if (!text4.IsEmpty())
2056 for (
int k = 0; k < 4 +
EClass.
rnd(2); k++)
2075 bool isPowerful =
TC.IsPowerful;
2076 string n = actRef.n1;
2077 if (n ==
"ConSuffocation")
2079 power = power * 2 / 3;
2082 int num12 = TC.WIL * (isPowerful ? 20 : 5);
2084 if (condition3 !=
null)
2086 num12 += condition3.power * 5;
2090 TC.Say(
"debuff_resist",
TC);
2098 if (!actRef.aliasEle.IsEmpty())
2115 TC.MutateRandom(1, 100, ether:
false, state);
2122 TC.MutateRandom(-1, 100, ether:
false, state);
2142 if (blessed || flag)
2146 Dialog.
InputName(
"dialogWish",
"q", delegate(
bool cancel,
string text)
2163 tc.
Say(
"faith_curse", tc,
faith.Name);
2168 tc.
Say(
"faith_bless", tc,
faith.Name);
2170 tc.
ModExp(306, power * 10);
2173 tc.
ModExp(85, power * 10);
2182 int gender2 = gender
switch
2196 if (blessed && age3 > 1)
2198 tc.
Say(
"ageDown", tc);
2203 tc.
Say(
"ageUp", tc);
2212 int num13 = ((actRef.refThing !=
null) ? actRef.refThing.GetInt(118) : actRef.refVal);
2218 num13 = EClass.game.seed + tc.
uid;
2222 tc.
Say(
"transBlood", tc);
2224 tc.c_bloodData =
null;
2233 if (!flag && age <= 0)
2238 age = Mathf.Max(0, age * 100 / (flag ? 75 : (blessed ? 400 : 200))) + (flag ? 1 : 0);
2239 tc.
Say(flag ?
"ageUp" :
"ageDown", tc);
2257 tc.
Say(
"eternalYouth2", tc);
2271 tc.
Say(
"eternalYouth1", tc);
2272 tc.c_lockedAge = age2 + 1;
2284 Debug.Log(power +
"/" +
id.ToString() +
"/" + actRef.n1);
2295 else if (
id ==
EffectId.DebuffStats)
2300 if (power < 0 ||
id ==
EffectId.DebuffStats)
2302 power = Mathf.Abs(power);
2316 List<KeyValuePair<int, Chara>> list8 =
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();
2317 if (
TC.IsPCFaction ||
TC.IsPCFactionMinion)
2319 if (
TC.IsPC && list8.Count == 0)
2323 if (list8.Count > 0)
2325 list8.RandomItem().Value.Chara.GetRevived();
2329 TC.SayNothingHappans();
2338 bool flag12 =
id == EffectId.DamageBody ||
id ==
EffectId.DamageBodyGreat;
2339 bool mind2 =
id == EffectId.DamageMind ||
id ==
EffectId.DamageMindGreat;
2340 int num11 = ((
id == EffectId.DamageBody ||
id ==
EffectId.DamageMind) ? 1 : (4 +
EClass.
rnd(4)));
2349 TC.PlayEffect(
"debuff");
2350 TC.PlaySound(
"debuff");
2352 TC.Say(flag12 ?
"damageBody" :
"damageMind",
TC);
2353 for (
int l = 0; l < num11; l++)
2355 TC.DamageTempElements(power, flag12, mind2,
id !=
EffectId.Weaken);
2368 bool flag9 =
id == EffectId.EnhanceBody ||
id ==
EffectId.EnhanceBodyGreat;
2369 bool mind =
id == EffectId.EnhanceMind ||
id ==
EffectId.EnhanceMindGreat;
2374 TC.Say(flag9 ?
"enhanceBody" :
"enhanceMind",
TC);
2375 TC.PlayEffect(
"buff");
2376 TC.PlaySound(
"buff");
2377 TC.EnhanceTempElements(power, flag9, mind, onlyRenew:
true);
2383 bool flag10 =
id ==
EffectId.RestoreBody;
2389 TC.Say(flag10 ?
"restoreBody" :
"restoreMind",
TC);
2390 TC.PlaySound(
"heal");
2391 TC.PlayEffect(
"heal");
2401 TC.CureHost(
CureType.HealComplete, power, state);
2402 TC.Say(
"heal_heavy",
TC);
2411 int num10 =
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();
2412 if (actRef.refThing !=
null)
2414 num10 = num10 * (100 + actRef.refThing.Evalue(750) * 10) / 100;
2418 TC.DamageHP(num10 / 2, 919, power);
2421 TC.HealHPHost(num10, (actRef.refThing ==
null &&
id !=
EffectId.JureHeal) ? HealSource.Magic :
HealSource.Item);
2423 TC.Say((power >= 300) ?
"heal_heavy" :
"heal_light",
TC);
2429 TC.Say(
"heal_jure",
TC);
2446 CC.Say(
"removeHex",
TC, item8.
Name.ToLower());
2457 TC.PlaySound(
"heal");
2458 TC.PlayEffect(
"heal");
2461 TC.Say(
"cureCorruption_curse",
TC);
2463 TC.ModCorruption(power);
2467 TC.Say(
"cureCorruption",
TC);
2468 TC.ModCorruption(-power * (blessed ? 150 : 200) / 100);
2476 TC.Say(
"drinkRamune",
TC);
2480 TC.Say(
"drinkGood",
TC);
2486 TC.Say(
"drinkMilk",
TC);
2503 TC.Say(
"drinkWater_dirty",
TC);
2509 TC.Say(
"drinkWater_clear",
TC);
2515 TC.Say(
"drinkWater_dirty",
TC);
2523 if (
TC.HasElement(1211))
2525 TC.Say(
"drinkSaltWater_snail",
TC);
2526 int num9 = ((TC.hp > 10) ? (
TC.hp -
EClass.
rnd(10)) : 10000);
2531 TC.Say(
"drinkSaltWater",
TC);
2536 if (
TC.HasElement(1215))
2538 TC.Say(
"drunk_dwarf",
TC);
2694 if (list6.Count != 0)
2696 Thing thing6 = list6.RandomItem();
2697 TC.Say(
"acid_hit",
TC);
2700 TC.Say(
"acid_nullify", thing6);
2702 else if (thing6.
encLV > -5)
2704 TC.Say(
"acid_rust",
TC, thing6);
2716 TC.DamageHP(power / 5, actRef.idEle, power);
2727 TC.Say(
"drink_acid",
TC);
2728 TC.DamageHP(power / 5, 923, power);
2731 Msg.
Say(
"nothingHappens");
2739 TC.Say(
"love_curse_self",
TC);
2743 TC.Say(
"love_curse", CC,
TC);
2744 TC.ModAffinity(CC, -power / 4, show:
false);
2746 TC.ShowEmo(
Emo.angry);
2750 LoveMiracle(
TC, CC, power,
id, state);
2756 if (
TC.HasElement(1532))
2758 TC.SetMutation(1532);
2762 TC.SetMutation(1533, 1);
2769 if (
TC.HasElement(1533))
2771 TC.SetMutation(1533);
2775 TC.SetMutation(1532, 1);
2778 TC.PlayEffect(
"aura_heaven");
2779 TC.PlaySound(
"godbless");
2782 TC.Say(
"grow_hair_fail",
TC);
2785 TC.Say(
"grow_hair",
TC);
2802 if (!CC.IsHostile(
TC))
2822 Proc(_id, orgPower, _state, cc, tc, _ref1);
2828 tc.
Say(
"eat_poison", tc);
2830 if (power > 100000000)
2834 int num = (int)Mathf.Sqrt(power * 100);
2846 tc.
Say(
"love_ground", tc);
2850 tc.
Say(
"love_chara", c, tc);
2859 tc.
Say(
"item_drop", thing);
2863 Thing c2 = tc.
MakeMilk(effect:
true, 1, addToZone:
true, state);
2864 tc.
Say(
"item_drop", c2);
2868 Thing c3 = tc.
MakeEgg(effect:
true, 1, addToZone:
true, (idEffect ==
EffectId.LovePlus) ? 3 : 20, state);
2869 tc.
Say(
"item_drop", c3);
2883 tc.
Say(
"love_ground", tc);
2887 tc.
Say(
"love_chara", c, tc);
2896 for (
int i = 0; i < 10000; i++)
2912 string netMsg =
GameLang.
Parse(
"wish".langGame(), thirdPerson:
true, name, s);
2913 List<WishItem> list =
new List<WishItem>();
2914 int wishLv = 10 + power / 4;
2915 int wishValue = 5000 + power * 50;
2918 wishLv = wishLv * 150 / 100;
2922 wishLv = wishLv * 150 / 100;
2925 Debug.Log(power +
"/" + wishValue);
2926 string _s = s.ToLower();
2934 if (
item.giftRank >= 2 &&
item.IsValidArtifact(r.
id))
2961 string text = r.
GetName().ToLower();
2962 int score = Compare(_s, text);
2975 if (category.IsChildOf(
"weapon") || category.IsChildOf(
"armor") || category.IsChildOf(
"ranged"))
2977 CardBlueprint.SetRarity(Rarity.Legendary);
2982 bool flag2 = thing.trait is
TraitDeed || thing.rarity >=
Rarity.Artifact || thing.
source._origin ==
"artifact_summon";
2986 thing.c_charges = 0;
2989 num = EClass.rndHalf(wishValue * 3);
2992 num = EClass.rndHalf(wishValue / 500 + 4);
2995 num = EClass.rndHalf(wishValue / 500 + 4);
2998 num = EClass.rndHalf(wishValue / 2000 + 4);
3001 if (!flag2 && thing.trait.CanStack)
3003 int num2 = wishValue;
3005 for (int i = 1; i < 1000; i++)
3007 int num3 = price + i * 2 * (price + 500);
3008 if (num3 > 0 && num2 > num3)
3017 if (price > 2500 && num > 3)
3019 num = 3 + (int)Mathf.Sqrt(num - 3);
3021 if (price > 5000 && num > 2)
3023 num = 2 + (int)Mathf.Sqrt(num - 2) / 2;
3025 if (price > 10000 && num > 1)
3027 num = 1 + Mathf.Min((
int)Mathf.Sqrt(num - 1) / 3, 2);
3034 Debug.Log(_s +
"/" + num +
"/" + score);
3035 if (thing.HasTag(
CTAG.godArtifact))
3049 if (list.Count == 0)
3051 netMsg = netMsg + Lang.space +
"wishFail".langGame();
3056 list.Sort((WishItem a, WishItem b) => b.score - a.score);
3057 foreach (WishItem item2
in list)
3059 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 LoveMiracle(Chara tc, Chara c, int power, EffectId idEffect=EffectId.Love, BlessedState? state=null)
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 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
int GetInt(int id, int? defaultInt=null)
void SetInt(int id, int value=0)
void SetRefVal(int a, int b)
virtual ConditionType Type
static int GetColorInt(ref Color matColor, int p)
void SetAge(Chara c, int a)
static void Set(CardBlueprint _bp=null)
GlobalCharaList globalCharas
virtual string GetName(int i)
void Teleport(Point point, bool silent=false, bool force=false)
ElementContainerCard elements
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)
void DamageHP(long dmg, AttackSource attackSource=AttackSource.None, Card origin=null)
BlessedState blessedState
void ModExp(string alias, int a)
bool HasElement(int ele, bool includeNagative=false)
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 Cuddle(Chara c, bool headpat=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)
Point GetFirstStep(Point newPoint, PathManager.MoveType moveType=PathManager.MoveType.Default)
Chara GetNearbyCatToSniff()
bool CanSeeLos(Card c, int dist=-1)
bool RequestProtection(Chara attacker, Action< Chara > action)
bool HasCondition(string alias)
void SetMainElement(string id, int v=0, bool elemental=false)
bool HasMinion(string id)
override bool IsPCFaction
override bool IsPCPartyMinion
void MakeMinion(Chara _master, MinionType type=MinionType.Default)
override void Die(Element e=null, Card origin=null, AttackSource attackSource=AttackSource.None, Chara originalTarget=null)
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)
bool TryEquip(Thing t, bool useFav=false)
void SetSummon(int duration)
Thing Pick(Thing t, bool msg=true, bool tryStack=true)
void MoveZone(string alias)
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)
int GetRaw(int offsetHours=0)
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 float rndf(float a)
static FactionBranch Branch
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)
Element GetElement(string alias)
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 CreateChangeRarity(Chara cc, Thing consume, EffectId idEffect, BlessedState state=BlessedState.Normal, int price=0, 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 power=100, 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)
Layer SetTitles(string langList, string idHeaderRow=null)
Point GetRandomSurface(int x, int z, int radius, bool walkable=true, bool allowWater=false)
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)
void SetEffect(int x, int z, CellEffect effect=null)
List< Point > ListPointsInLine(Point center, Point to, int radius, bool returnOnBlocked=true)
List< Point > ListPointsInCircle(Point center, float radius, bool mustBeWalkable=true, bool los=true)
void RevealAll(bool reveal=true)
static bool IsSameSign(int a, int b)
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)
int CountKeyItem(string alias)
SourceMaterial.Row matBlock
List< Card > ListCards(bool includeMasked=false)
Point Set(int _x, int _z)
Point GetNearestPoint(bool allowBlock=false, bool allowChara=true, bool allowInstalled=true, bool ignoreCenter=false, int minRadius=0)
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)
Effect PlayEffect(string id)
Point GetRandomNeighbor()
void Animate(AnimeID id, bool animeBlock=false)
Point GetRandomPoint(int radius, bool requireLos=true, bool allowChara=true, bool allowBlocked=false, int tries=100)
static void SetBaseSeed(int a=-1)
static void SetSeed(int a=-1)
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
static Spatial Create(string id, Spatial parent, bool register, int x=-99999, int y=-99999, int icon=0)
List< Zone > ListReturnLocations()
static SpawnList Get(string id, Func< SourceChara.Row, bool > func)
static void GetAchievement(ID_Achievement id)
static Thing Create(string id, int idMat=-1, int lv=-1)
override CardRow sourceCard
Thing Identify(bool show=true, IDTSource idtSource=IDTSource.Identify)
virtual bool UseRandomAlias
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)
virtual string GetNewZoneID(int level)
int CountMinions(Chara c)
Card AddCard(Card t, Point point)