EA 23.234 Nightly
November 16, 2025
42 files modified. 1 new file created.
Important Changes
Possible breaking changes. Click the filename to view the chunk.
Chara (1)
public void OnSleep(int power, int days = 1)
public void OnSleep(int power, int days = 1, bool isSunLit = false) ABILITY
public class ABILITY
{
public const int ActNTR = 6603;
public const int ActBash = 5052;
public const int TaskHarvest = 5053;
public const int ActCryRage = 6604;
public const int AI_Bladder = 5054;
public const int ActPray = 6050;
public const int ActZap = 5051;
public const int ActEscape = 6400;
public const int ActDuplicate = 6420;
public const int ActSuicide = 6410;
public const int ActRush = 6450;
public const int TaskHarvest = 5053;
public const int ActDuplicate = 6420;
public const int ActCrabBreathe = 6500;
public const int ActDraw = 6602;
public const int ActCryRage = 6604;
public const int ActNTR = 6603;
public const int ActCrySad = 6605;
public const int ActBurnMana = 6606;
public const int ActBloodsuck = 6607;
public const int ActWeaken = 6610;
public const int ActFear = 6611;
public const int ActGazeDim = 6620;
public const int ActSuicide = 6410;
public const int ActGazeInsane = 6621;
public const int AI_Sleep = 5050;
public const int ActRush = 6450;
public const int ActItem = 5048;
public const int ActGazeMana = 6623;
public const int TaskPick = 5018;
public const int ActBash = 5052;
public const int TaskReadBoard = 5019;
public const int AI_Sleep = 5050;
public const int TaskFarm = 5020;
public const int AI_Deconstruct = 5031;
public const int AI_OpenLock = 5049;
public const int AI_Equip = 5032;
public const int GoalIdle = 5034;
public const int ActCancelTask = 5033;
public const int TaskBuild = 5035;
public const int ActZap = 5051;
public const int GoalIdle = 5034;
public const int TaskMoveInstalled = 5036;
public const int ActPick = 5047;
public const int ActCancelTask = 5033;
public const int ActGazeMana = 6623;
public const int ActItem = 5048;
public const int ActGazeMutation = 6622;
public const int AI_OpenLock = 5049;
public const int ActCatHuffing = 6627;
public const int TaskBuild = 5035;
public const int ActDrainBlood = 6626;
public const int breathe_Nether = 50206;
public const int ActGazeMutation = 6622;
public const int ActInsult = 6630;
public const int ActCatHuffing = 6627;
public const int breathe_Sound = 50207;
public const int breathe_Void = 50216;
public const int TaskReadBoard = 5019;
public const int TaskPick = 5018;
public const int TaskTalk = 5017;
public const int TaskTame = 5016;
public const int breathe_Mind = 50204;
public const int TaskAttack = 5015;
public const int ActAttack = 5013;
public const int TaskPlow = 5014;
public const int AI_Goto = 5012;
public const int ActWait = 5000;
public const int TaskCut = 5011;
public const int ActMelee = 5001;
public const int TaskDig = 5010;
public const int Melee = 5002;
public const int TaskMine = 5009;
public const int Ranged = 5003;
public const int General = 5008;
public const int Sleep = 5004;
public const int Use = 5007;
public const int Wait = 5005;
public const int Shoot = 5006;
public const int breathe_Poison = 50205;
public const int Wait = 5005;
public const int Shoot = 5006;
public const int Sleep = 5004;
public const int General = 5008;
public const int Ranged = 5003;
public const int TaskMine = 5009;
public const int Melee = 5002;
public const int TaskDig = 5010;
public const int ActMelee = 5001;
public const int TaskCut = 5011;
public const int ActWait = 5000;
public const int AI_Goto = 5012;
public const int TaskPlow = 5014;
public const int ActAttack = 5013;
public const int breathe_Darkness = 50203;
public const int Use = 5007;
public const int breathe_Poison = 50205;
public const int breathe_Mind = 50204;
public const int breathe_Cold = 50201;
public const int breathe_Nether = 50206;
public const int ActInsult = 6630;
public const int breathe_Lightning = 50202;
public const int ActScream = 6631;
public const int ActBladeStorm2 = 6665;
public const int breathe_Lightning = 50202;
public const int breathe_Darkness = 50203;
public const int ActMissileBarrage = 6667;
public const int ActWhirlwind = 6666;
public const int ActJureHeal = 6901;
public const int StTaunt = 6700;
public const int StManaCost = 6720;
public const int SongSleep = 6750;
public const int SongTulip = 6751;
public const int breathe_Cold = 50201;
public const int SongValor = 6752;
public const int breathe_Fire = 50200;
public const int ActManaAbsorb = 6900;
public const int SpTransmuteBat = 8793;
public const int breathe_Fire = 50200;
public const int breathe_ = 7000;
public const int ActLulwyTrick = 6902;
public const int StTaunt = 6700;
public const int ActKizuamiTrick = 6903;
public const int breathe_ = 7000;
public const int ActLulwyTrick = 6902;
public const int ActHeadpat = 6904;
public static readonly int[] IDS = new int[131]
public const int ActManaAbsorb = 6900;
public const int SongValor = 6752;
public const int SongTulip = 6751;
public const int SongSleep = 6750;
public const int ActJureHeal = 6901;
public static readonly int[] IDS = new int[133]
{
6603, 5052, 5053, 5054, 5055, 6001, 6003, 6011, 6012, 6013,
6015, 6018, 6019, 6020, 6050, 5051, 6400, 6420, 6450, 6500,
6600, 6601, 6602, 6604, 6605, 6606, 6610, 6611, 6612, 6613,
6620, 6410, 6621, 5050, 5048, 5018, 5019, 5020, 5021, 5022,
5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5049,
5032, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042,
5043, 5044, 5045, 5046, 5047, 5033, 6623, 6622, 6627, 6626,
50206, 50207, 50208, 50209, 50210, 50211, 50212, 50213, 50214, 50215,
50216, 5017, 5016, 50204, 5015, 5013, 5012, 5011, 5010, 5009,
5008, 5007, 5006, 5005, 5004, 5003, 5002, 5001, 5000, 5014,
50203, 50205, 50201, 6630, 6631, 6640, 6641, 6642, 6650, 6660,
6661, 6662, 6663, 6664, 6665, 50202, 6667, 6800, 6666, 6901,
6700, 6720, 6750, 6751, 6752, 6900, 50200, 6902, 6903, 7000,
6904
6604, 5054, 5055, 6001, 6003, 6011, 6012, 6013, 6015, 6018,
6019, 6020, 6050, 6400, 6410, 5053, 6420, 6500, 6600, 6601,
6602, 6603, 6605, 6606, 6607, 6610, 6611, 6612, 6613, 6620,
6621, 6450, 6623, 5052, 5050, 5020, 5021, 5022, 5023, 5024,
5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5051,
5034, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044,
5045, 5046, 5047, 5048, 5049, 5035, 6626, 6622, 6630, 6627,
50207, 50208, 50209, 50210, 50211, 50212, 50213, 50214, 50215, 50216,
5019, 5018, 5017, 5016, 5015, 5014, 5000, 5001, 5002, 5003,
5004, 5005, 50205, 5006, 5008, 5009, 5010, 5011, 5012, 5013,
5007, 50204, 50206, 50202, 6631, 6640, 6641, 6642, 6650, 6660,
6661, 6662, 6663, 6664, 6665, 50203, 6667, 6800, 6666, 6720,
50201, 50200, 8793, 7000, 6700, 6903, 6902, 6904, 6900, 6752,
6751, 6750, 6901
};
}
public class Ability : ActAI_Fuck
tame
}
public enum Variation
{
Normal,
Bitch,
Succubus,
NTR,
Bloodsuck
}
public Variation variation;
public Chara target;
public bool sell;
public bool bitch;
public bool succubus;
public bool ntr;
public int maxProgress;
public int progress;
public override int CurrentProgress => progress;
public override bool CancelOnAggro => !ntr;
public override bool CancelOnAggro
{
get
{
if (variation != Variation.NTR)
{
return variation != Variation.Bloodsuck;
}
return false;
}
}
public override bool CancelWhenDamaged => !ntr;
public override bool CancelWhenDamaged => CancelOnAggro;
public override bool ShouldAllyAttack(Chara tg)
{public override IEnumerable<Status> Run()
{
cc.SetTempHand(1104, -1);
}
maxProgress = (ntr ? 10 : 25);
if (succubus)
maxProgress = ((variation == Variation.NTR || variation == Variation.Bloodsuck) ? 10 : 25);
if (variation == Variation.Succubus)
{
cc.Talk("seduce");
}
if (variation == Variation.Bloodsuck)
{
cc.PlaySound("bloodsuck");
}
for (int i = 0; i < maxProgress; i++)
{
progress = i;public override IEnumerable<Status> Run()
switch (Type)
{
case FuckType.fuck:
if (ntr)
if (variation == Variation.NTR)
{
cc.Say("ntr", cc, tc);
}public override IEnumerable<Status> Run()
{
target.AddCondition<ConWait>(50, force: true);
}
if (variation == Variation.Bloodsuck)
{
owner.pos.TryWitnessCrime(cc, tc, 4, (Chara c) => EClass.rnd(cc.HasCondition<ConTransmuteBat>() ? 50 : 20) == 0);
}
break;
case FuckType.tame:
{ {
case FuckType.fuck:
{
for (int i = 0; i < 2; i++)
if (variation == Variation.Bloodsuck)
{
Chara chara3 = ((i == 0) ? chara : chara2);
chara3.RemoveCondition<ConDrunk>();
if (EClass.rnd(15) == 0 && !chara3.HasElement(1216))
if (EClass.rnd(2) == 0)
{
chara3.AddCondition<ConDisease>(200);
chara2.AddCondition<ConConfuse>(500);
}
chara3.ModExp(77, 250);
chara3.ModExp(71, 250);
chara3.ModExp(75, 250);
}
if (!chara2.HasElement(1216))
{
if (EClass.rnd(5) == 0)
if (EClass.rnd(2) == 0)
{
chara2.AddCondition<ConDim>(500);
}
if (EClass.rnd(2) == 0)
{
chara2.AddCondition<ConParalyze>(500);
}
if (EClass.rnd(3) == 0)
if (EClass.rnd(10) == 0)
{
chara2.AddCondition<ConInsane>(100 + EClass.rnd(100));
}
}
int num3 = CalcMoney.Whore(chara2, chara);
else
{
for (int i = 0; i < 2; i++)
{
Chara chara3 = ((i == 0) ? chara : chara2);
chara3.RemoveCondition<ConDrunk>();
if (EClass.rnd(15) == 0 && !chara3.HasElement(1216))
{
chara3.AddCondition<ConDisease>(200);
}
chara3.ModExp(77, 250);
chara3.ModExp(71, 250);
chara3.ModExp(75, 250);
}
if (!chara2.HasElement(1216))
{
if (EClass.rnd(5) == 0)
{
chara2.AddCondition<ConParalyze>(500);
}
if (EClass.rnd(3) == 0)
{
chara2.AddCondition<ConInsane>(100 + EClass.rnd(100));
}
}
}
chara.Talk("tail_after");
bool flag3 = false;
if (succubus)
if (variation == Variation.Succubus)
{
chara.ShowEmo(Emo.love);
chara2.ShowEmo(Emo.love);
EClass.player.forceTalk = true;
chara2.Talk("seduced");
}
else if (chara != EClass.pc)
else if (variation != Variation.NTR && variation != Variation.Bloodsuck && chara != EClass.pc)
{
int num3 = CalcMoney.Whore(chara2, chara);
Chara chara4 = chara;
Chara chara5 = chara2;
if (bitch)
if (variation == Variation.Bitch)
{
chara = chara5;
chara2 = chara4; {
chara2.DoHostileAction(chara);
}
if (chara.IsPCParty || chara2.IsPCParty)
if (variation == Variation.Bloodsuck)
{
int value = chara.hunger.value;
Thing food = CraftUtil.MakeBloodMeal(chara, chara2);
FoodEffect.Proc(chara, food, consume: false);
chara2.AddCondition<ConBleed>(EClass.rndHalf(value * 20));
}
else
{
chara.stamina.Mod(-5 - EClass.rnd(chara.stamina.max / 10 + (succubus ? StaminaCost(chara2, chara) : 0) + 1));
chara2.stamina.Mod(-5 - EClass.rnd(chara2.stamina.max / 20 + (succubus ? StaminaCost(chara, chara2) : 0) + 1));
if (chara.IsPCParty || chara2.IsPCParty)
{
chara.stamina.Mod(-5 - EClass.rnd(chara.stamina.max / 10 + ((variation == Variation.Succubus) ? StaminaCost(chara2, chara) : 0) + 1));
chara2.stamina.Mod(-5 - EClass.rnd(chara2.stamina.max / 20 + ((variation == Variation.Succubus) ? StaminaCost(chara, chara2) : 0) + 1));
}
SuccubusExp(chara, chara2);
SuccubusExp(chara2, chara);
}
SuccubusExp(chara, chara2);
SuccubusExp(chara2, chara);
chara2.ModAffinity(chara, flag ? 10 : (-5));
if (chara == EClass.pc || chara2 == EClass.pc)
{
EClass.player.stats.kimo++;
}
if (ntr)
if (variation != Variation.NTR)
{
Thing thing = chara2.things.Find<TraitDreamBug>();
if (thing != null)
break;
}
Thing thing = chara2.things.Find<TraitDreamBug>();
if (thing != null)
{
thing.ModNum(-1);
if (chara.IsPC)
{
thing.ModNum(-1);
if (chara.IsPC)
{
Msg.Say("dream_spell", EClass.sources.elements.map[9156].GetName().ToLowerInvariant());
EClass.pc.GainAbility(9156, EClass.rnd(2) + 1);
}
Msg.Say("dream_spell", EClass.sources.elements.map[9156].GetName().ToLowerInvariant());
EClass.pc.GainAbility(9156, EClass.rnd(2) + 1);
}
}
if (!ntr || !chara.HasElement(1239) || chara2.HasElement(1216))
if (!chara.HasElement(1239) || chara2.HasElement(1216))
{
break;
}AI_Idle
public override IEnumerable<Status> Run()
}
}
}
if (EClass.rnd(100) == 0 && EClass.pc.ai is AI_Fish && owner.stamina.value > 0 && owner.things.Find<TraitToolFishing>() != null)
{
Point randomPointInRadius = EClass.pc.pos.GetRandomPointInRadius(0, 3);
if (randomPointInRadius != null)
{
randomPointInRadius = AI_Fish.GetFishingPoint(randomPointInRadius);
if (randomPointInRadius.IsValid)
{
yield return Do(new AI_Fish
{
pos = randomPointInRadius
});
}
}
}
}
if (owner.c_uidMaster != 0)
{public override IEnumerable<Status> Run()
yield return Do(new AI_Fuck
{
target = chara3,
bitch = true
variation = AI_Fuck.Variation.Bitch
});
}
}AI_PlayMusic
public override IEnumerable<Status> Run()
idSong = "flute";
break;
case "taiko":
case "drum":
idSong = "taiko";
break;
case "mokugyo":+ActBloodsuck
File Created
public class ActBloodsuck : ActNTR
{
public override bool IsHostileAct => true;
public override bool CanPerform()
{
if (Act.TC == null || !Act.TC.isChara || Act.TC == Act.CC)
{
return false;
}
if (Act.TC.Evalue(964) > 0)
{
return false;
}
return true;
}
public override bool Perform()
{
Act.CC.SetAI(new AI_Fuck
{
target = Act.TC.Chara,
variation = AI_Fuck.Variation.Bloodsuck
});
return true;
}
}ActEffect
public static bool Wish(string s, string name, int power, BlessedState state)
bool flag = false;
foreach (Religion item in EClass.game.religions.list)
{
if (item.IsValidArtifact(r.id))
if (item.giftRank >= 2 && item.IsValidArtifact(r.id))
{
flag = true;
}public static bool Wish(string s, string name, int power, BlessedState state)
Msg.Say("wishFail");
return false;
}
list.Sort((WishItem a, WishItem b) => (a.score != b.score) ? (b.score - a.score) : (EClass.rnd(10) - EClass.rnd(10)));
list.Sort((WishItem a, WishItem b) => b.score - a.score);
foreach (WishItem item2 in list)
{
Debug.Log(item2.score + "/" + s + "/" + item2.n);public static int Compare(string s, string t)
int num = 0;
if (t == s)
{
num += 100;
num += 100 + EClass.rnd(30);
}
if (t.Contains(s))
{
num += 100;
num += 100 + EClass.rnd(30);
}
return num;
}ActNTR
public override bool Perform()
Act.CC.SetAI(new AI_Fuck
{
target = Act.TC.Chara,
bitch = true,
ntr = true
variation = AI_Fuck.Variation.NTR
});
return true;
}ActPlan
public void _Update(PointTarget target)
TrySetAct(new AI_Fuck
{
target = c2,
succubus = true
variation = AI_Fuck.Variation.Succubus
}, c2);
}
TrySetAct(ACT.Chat, c2);BaseGameScreen
public void RefreshScreenSize()
{
Zoom = EMono.scene.camSupport.Zoom;
width = (int)((float)Screen.width / tileSize.x / Zoom) + (int)paddings.x + 2;
height = (int)((float)Screen.height / (tileSize.y / 2f) / Zoom) + (int)paddings.y + 4;
width = (int)((float)Screen.width / tileSize.x / Zoom) + (int)paddings.x + 2 + EMono.core.config.test.screenExtraWidth;
height = (int)((float)Screen.height / (tileSize.y / 2f) / Zoom) + (int)paddings.y + 4 + EMono.core.config.test.screenExtraHeight;
camSupport.divier = EMono.core.config.fix.divider;
camSupport.ResizeCameraToPixelPerfect();
Vector3 localScale = new Vector3(EMono.scene.cam.orthographicSize * ((float)Screen.width / (float)Screen.height) * 2.5f, EMono.scene.cam.orthographicSize * 2.5f, 1f);BaseTileMap
mz = vector3Int.x - 1;
HitPoint.Set(mx, mz);
bool isAltDown = EInput.isAltDown;
for (int num3 = maxColliderCheck; num3 >= 0; num3--)
for (int num3 = maxColliderCheck + EMono.core.config.test.screenExtraHeight; num3 >= 0; num3--)
{
TestPoint.x = mx + num3;
TestPoint.z = mz - num3; int valueOrDefault = (this.room?.lot?.idBGM).GetValueOrDefault();
if (valueOrDefault == 0)
{
goto IL_16fb;
goto IL_1710;
}
if (!(EMono.Sound.currentPlaylist != EMono.Sound.plLot))
{
BGMData data = EMono.Sound.plLot.list[0].data;
if ((object)data != null && data.id == valueOrDefault)
{
goto IL_16fb;
goto IL_1710;
}
}
goto IL_171a;
IL_1724:
goto IL_172f;
IL_1739:
if (this.room != lastRoom)
{
screen.RefreshWeather(); SoundManager.bgmVolumeMod = ((!LayerDrama.maxBGMVolume && !EMono._map.IsIndoor && this.room != null && !this.room.data.atrium && this.room.HasRoof) ? (-0.6f) : 0f);
screenHighlight = ScreenHighlight.None;
return;
IL_16fb:
IL_1710:
if (valueOrDefault == 0 && EMono.Sound.currentPlaylist == EMono.Sound.plLot)
{
goto IL_171a;
goto IL_172f;
}
goto IL_1724;
IL_171a:
goto IL_1739;
IL_172f:
EMono._zone.RefreshBGM();
goto IL_1724;
goto IL_1739;
}
public void RefreshHeight()public virtual void DrawTile()
{
blockLight -= heightLightMod * (float)(currentHeight - height);
}
if (blockLight < 0f)
{
blockLight = 0f;
}
liquidLv = (param.liquidLv = ((!flag && !isUnderwater) ? (((this.cell.liquidLv + this.cell._bridge != 0) ? this.cell.sourceBridge.tileType.LiquidLV : sourceFloor.tileType.LiquidLV) * 10) : 0));
if (this.cell.shore != 0 && liquidLv > 20)
{public virtual void DrawTile()
bool flag4 = this.cell.isSurrounded && innerMode != 0 && sourceBlock.tileType.IsFullBlock;
if (!(!isSeen || flag4))
{
goto IL_1683;
goto IL_169b;
}
bool isRoomEdge = this.cell.IsRoomEdge;
orgY = param.y;public virtual void DrawTile()
{
if (isRoomEdge)
{
goto IL_1683;
goto IL_169b;
}
if (detail == null || !EMono.pc.hasTelepathy)
{public virtual void DrawTile()
fogged = true;
}
}
goto IL_7b8d;
IL_6fd2:
if (isSnowCovered && (sourceBlock.id != 0 || this.cell.hasDoor) && !snowed && !this.cell.isClearSnow && ((!this.cell.Front.HasRoof && !this.cell.Front.HasBlock) || (!this.cell.Right.HasRoof && !this.cell.Right.HasBlock)))
{
snowed = true;
}
if (this.cell.effect != null)
{
if (this.cell.effect.IsLiquid)
{
SourceCellEffect.Row sourceEffect = this.cell.sourceEffect;
SourceMaterial.Row defaultMaterial = sourceEffect.DefaultMaterial;
tile = 4 + Rand.bytes[index % Rand.MaxBytes] % 4;
param.tile = tile + this.cell.sourceEffect._tiles[0];
param.mat = defaultMaterial;
param.matColor = ((this.cell.effect.color == 0) ? GetColorInt(ref defaultMaterial.matColor, sourceEffect.colorMod) : this.cell.effect.color);
sourceEffect.renderData.Draw(param);
}
else
{
param.tile = this.cell.effect.source._tiles[0];
SourceCellEffect.Row sourceEffect2 = this.cell.sourceEffect;
if (sourceEffect2.anime.Length != 0)
{
if (sourceEffect2.anime.Length > 2)
{
float num3 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.anime[1] % (float)sourceEffect2.anime[2];
if (!(num3 >= (float)sourceEffect2.anime[0]))
{
param.tile += num3;
}
}
else
{
float num4 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.anime[1] % (float)sourceEffect2.anime[0];
param.tile += num4;
}
}
if (this.cell.effect.IsFire)
{
rendererEffect.Draw(param);
}
else
{
this.cell.effect.source.renderData.Draw(param);
}
}
}
param.color = floorLight;
if (this.cell.critter != null)
{
Critter critter = this.cell.critter;
int snowTile = critter.tile;
if (snowed && critter.SnowTile != 0)
{
critter.x = 0.06f;
critter.y = -0.06f;
snowTile = critter.SnowTile;
}
else
{
critter.Update();
}
pass = passObjSS;
batch = pass.batches[pass.batchIdx];
batch.matrices[pass.idx].m03 = param.x + (float)(int)(critter.x * 100f) * 0.01f;
batch.matrices[pass.idx].m13 = param.y + (float)(int)(critter.y * 100f) * 0.01f;
batch.matrices[pass.idx].m23 = param.z;
batch.tiles[pass.idx] = snowTile * ((!critter.reverse) ? 1 : (-1));
batch.colors[pass.idx] = floorLight;
pass.idx++;
if (pass.idx == pass.batchSize)
{
pass.NextBatch();
}
}
if (detail != null)
{
TransAnime anime3 = detail.anime;
if (anime3 != null && !anime3.animeBlock)
{
TransAnime anime4 = detail.anime;
param.x += anime4.v.x;
param.y += anime4.v.y;
param.z += anime4.v.z;
}
}
if (this.cell.obj != 0 && !this.cell.sourceObj.renderData.SkipOnMap)
{
SourceObj.Row sourceObj = this.cell.sourceObj;
if (!snowed || sourceObj.snowTile <= 0)
{
param.snow = snowed;
param.mat = this.cell.matObj;
orgY = param.y;
if (param.liquidLv > 0)
{
if (sourceObj.pref.Float)
{
param.y += 0.01f * floatY;
if (liquidLv > 10)
{
liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;
}
liquidLv -= (int)(floatY * 0.5f);
param.liquidLv = liquidLv;
}
if (sourceObj.tileType.IsWaterTop)
{
param.liquidLv = 0;
}
else
{
param.liquidLv += sourceObj.pref.liquidMod;
if (param.liquidLv < 1)
{
param.liquid = 1f;
}
else if (param.liquidLv > 99 + sourceObj.pref.liquidModMax)
{
param.liquidLv = 99 + sourceObj.pref.liquidModMax;
}
}
}
if (sourceObj.useAltColor)
{
param.matColor = ((sourceObj.colorMod == 0) ? 104025 : GetColorInt(ref param.mat.altColor, sourceObj.colorMod));
}
else
{
param.matColor = ((sourceObj.colorMod == 0) ? 104025 : GetColorInt(ref param.mat.matColor, sourceObj.colorMod));
}
if (sourceObj.HasGrowth)
{
this.cell.growth.OnRenderTileMap(param);
if (this.cell.obj == 118 && Core.fixedFrame % 10f == 0f && sourceObj.growth.IsMature)
{
EMono.scene.psFey.transform.position = new Vector3(param.x, param.y, param.z - 2f);
EMono.scene.psFey.Emit(1);
}
}
else
{
if (this.cell.autotileObj != 0)
{
param.tile = sourceObj._tiles[0] + this.cell.autotileObj;
}
else if (sourceObj.tileType.IsUseBlockDir)
{
param.tile = sourceObj._tiles[this.cell.blockDir % sourceObj._tiles.Length];
}
else
{
param.tile = sourceObj._tiles[this.cell.objDir % sourceObj._tiles.Length];
}
if (_lowblock && sourceObj.tileType.IsSkipLowBlock)
{
param.tile += ((param.tile > 0f) ? 1 : (-1)) * 3000000;
}
orgY = param.y;
orgZ = param.z;
param.y += sourceObj.pref.y;
param.z += sourceObj.pref.z;
sourceObj.renderData.Draw(param);
param.y = orgY;
param.z = orgZ;
int shadow3 = sourceObj.pref.shadow;
if (shadow3 > 1 && !this.cell.ignoreObjShadow)
{
passShadow.AddShadow(param.x + sourceObj.renderData.offsetShadow.x, param.y + sourceObj.renderData.offsetShadow.y, param.z + sourceObj.renderData.offsetShadow.z, ShadowData.Instance.items[shadow3], sourceObj.pref, 0, param.snow);
}
param.y = orgY;
}
}
}
if (this.cell.decal != 0 && sourceFloor.tileType.AllowBlood)
{
passDecal.Add(param, (int)this.cell.decal, floorLight);
}
if (highlightCells)
{
switch (ActionMode.FlagCell.mode)
{
case AM_FlagCell.Mode.flagWallPillar:
if (this.cell.isToggleWallPillar)
{
passArea.Add(param, 34f, 0f);
}
break;
case AM_FlagCell.Mode.flagSnow:
if (this.cell.isClearSnow)
{
passArea.Add(param, 34f, 0f);
}
break;
case AM_FlagCell.Mode.flagFloat:
if (this.cell.isForceFloat)
{
passArea.Add(param, 34f, 0f);
}
break;
case AM_FlagCell.Mode.flagClear:
if (this.cell.isClearArea)
{
passArea.Add(param, 34f, 0f);
}
break;
}
}
if (detail == null)
{
return;
}
if (highlightArea && detail.area != null)
{
passArea.Add(param, (int)detail.area.GetTile(index) - ((!subtleHighlightArea) ? 1 : 0), 0f);
}
if (detail.footmark != null && sourceFloor.id != 0)
{
param.tile = detail.footmark.tile;
param.mat = matFloor;
param.matColor = 104025f;
renderFootmark.Draw(param);
}
goto IL_7b8d;
IL_1683:
goto IL_7ba5;
IL_169b:
if (this.cell.isSlopeEdge)
{
float num5 = (float)height * _heightMod.y;
float num3 = (float)height * _heightMod.y;
orgY = param.y;
orgZ = param.z;
param.dir = this.cell.blockDir;public virtual void DrawTile()
param.matColor = 104025f;
}
}
for (int j = 0; (float)j < num5 / heightBlockSize; j++)
for (int j = 0; (float)j < num3 / heightBlockSize; j++)
{
param.y += ugFix.y;
param.z += ugFix.z + slopeFixZ * (float)j;
defBlock.renderData.Draw(param);
if (this.cell.pcSync && EMono.player.lightPower > 0f)
{
float num6 = param.tile;
float num4 = param.tile;
param.tile = 0f;
rendererFov.Draw(param);
param.tile = num6;
param.tile = num4;
}
}
param.y = orgY;public virtual void DrawTile()
{
orgY = param.y;
orgZ = param.z;
int num7 = 0;
int num5 = 0;
if (sourceBlock.tileType.IsFullBlock)
{
SourceBlock.Row row3 = sourceBlock;
num7 = sourceBlock._tiles[this.cell.blockDir % sourceBlock._tiles.Length];
num5 = sourceBlock._tiles[this.cell.blockDir % sourceBlock._tiles.Length];
}
else
{
SourceBlock.Row row3 = sourceFloor._defBlock;
num7 = row3._tiles[this.cell.blockDir % row3._tiles.Length];
num5 = row3._tiles[this.cell.blockDir % row3._tiles.Length];
}
if (((this.cell.Front.shore / 12) & 1) == 0 && this.cell.Front.sourceFloor.tileType.IsWater && this.cell.Front.height <= height && this.cell.Front.sourceBlock.tileType.RenderWaterBlock)
{
param.y = (float)(cz - cx) * screen.tileAlign.y - (this.cell.Front.sourceFloor.tileType.IsDeepWater ? 0.6f : 0.4f) + (float)(int)this.cell.Front.height * _heightMod.y;
param.z = 1000f + param.x * screen.tileWeight.x + param.y * screen.tileWeight.z;
param.tile = num7 + ((!this.cell.Front.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
param.tile = num5 + ((!this.cell.Front.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
rendererWaterBlock.Draw(param);
}
if (((this.cell.Right.shore / 12) & 8) == 0 && this.cell.Right.sourceFloor.tileType.IsWater && this.cell.Right.height <= height && this.cell.Right.sourceBlock.tileType.RenderWaterBlock)
{
param.y = (float)(cz - cx) * screen.tileAlign.y - (this.cell.Right.sourceFloor.tileType.IsDeepWater ? 0.6f : 0.4f) + (float)(int)this.cell.Right.height * _heightMod.y;
param.z = 1000f + param.x * screen.tileWeight.x + param.y * screen.tileWeight.z;
param.tile = num7 + ((!this.cell.Right.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
param.tile = num5 + ((!this.cell.Right.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
rendererWaterBlock.Draw(param);
}
param.y = orgY;public virtual void DrawTile()
}
sourceFloor.renderData.Draw(param);
}
int num8 = 0;
int num6 = 0;
if (isSnowCovered && sourceFloor == FLOOR.sourceSnow && !this.cell.hasDoor)
{
if (!this.cell.Right.IsSnowTile && this.cell.Right.topHeight == this.cell.topHeight)
{
num8++;
num6++;
}
if (!this.cell.Front.IsSnowTile && this.cell.Front.topHeight == this.cell.topHeight)
{
num8 += 2;
num6 += 2;
}
if (num8 != 0)
if (num6 != 0)
{
param.tile = 448 + num8 + 12;
param.tile = 448 + num6 + 12;
param.z -= 0.1f;
sourceFloor.renderData.Draw(param);
param.z += 0.1f;public virtual void DrawTile()
}
}
}
if (this.cell.autotile != 0 && sourceFloor.autotile != 0 && (!hasBridge || this.cell.bridgeHeight - this.cell.height > 3) && !this.cell.skipRender && num8 == 0)
if (this.cell.autotile != 0 && sourceFloor.autotile != 0 && (!hasBridge || this.cell.bridgeHeight - this.cell.height > 3) && !this.cell.skipRender && num6 == 0)
{
pass = (isWater ? passAutoTileWater : passAutoTile);
batch = pass.batches[pass.batchIdx];public virtual void DrawTile()
}
if (isWater)
{
int num9 = 12;
int num10 = this.cell.shore / num9;
int num11 = this.cell.shore % num9;
int num7 = 12;
int num8 = this.cell.shore / num7;
int num9 = this.cell.shore % num7;
bool isShoreSand = this.cell.isShoreSand;
if (this.cell.shore != 0)
{
Cell cell = ((((uint)num10 & (true ? 1u : 0u)) != 0) ? this.cell.Back : ((((uint)num10 & 2u) != 0) ? this.cell.Right : ((((uint)num10 & 4u) != 0) ? this.cell.Front : this.cell.Left)));
Cell cell = ((((uint)num8 & (true ? 1u : 0u)) != 0) ? this.cell.Back : ((((uint)num8 & 2u) != 0) ? this.cell.Right : ((((uint)num8 & 4u) != 0) ? this.cell.Front : this.cell.Left)));
if (isShoreSand && !cell.sourceFloor.isBeach)
{
cell = ((((uint)num10 & 8u) != 0) ? this.cell.Left : ((((uint)num10 & 4u) != 0) ? this.cell.Front : ((((uint)num10 & 2u) != 0) ? this.cell.Right : this.cell.Back)));
cell = ((((uint)num8 & 8u) != 0) ? this.cell.Left : ((((uint)num8 & 4u) != 0) ? this.cell.Front : ((((uint)num8 & 2u) != 0) ? this.cell.Right : this.cell.Back)));
}
if (!cell.IsSnowTile)
{public virtual void DrawTile()
batch.matrices[pass.idx].m03 = param.x;
batch.matrices[pass.idx].m13 = param.y;
batch.matrices[pass.idx].m23 = param.z;
batch.tiles[pass.idx] = 768 + this.cell.shore / num9;
batch.tiles[pass.idx] = 768 + this.cell.shore / num7;
batch.colors[pass.idx] = param.color;
batch.matColors[pass.idx] = param.matColor;
pass.idx++;public virtual void DrawTile()
{
pass.NextBatch();
}
num11 = 2;
num9 = 2;
}
else
{
num11 = cell.sourceFloor.edge;
num9 = cell.sourceFloor.edge;
}
param.tile = (24 + num11 / 2) * 32 + num11 % 2 * 16 + num10;
param.tile = (24 + num9 / 2) * 32 + num9 % 2 * 16 + num8;
rendererShore.Draw(param);
}
}
if (this.cell.Back.isShoreSand && ((uint)(this.cell.Back.shore / num9) & 8u) != 0 && this.cell.Left.isShoreSand && ((uint)(this.cell.Left.shore / num9) & (true ? 1u : 0u)) != 0)
if (this.cell.Back.isShoreSand && ((uint)(this.cell.Back.shore / num7) & 8u) != 0 && this.cell.Left.isShoreSand && ((uint)(this.cell.Left.shore / num7) & (true ? 1u : 0u)) != 0)
{
param.tile = 785f;
param.matColor = GetColorInt(ref this.cell.BackLeft.matFloor.matColor, this.cell.BackLeft.sourceFloor.colorMod);
passShore.Add(param);
Draw(60);
}
if (this.cell.Back.isShoreSand && ((uint)(this.cell.Back.shore / num9) & 2u) != 0 && this.cell.Right.isShoreSand && ((uint)(this.cell.Right.shore / num9) & (true ? 1u : 0u)) != 0)
if (this.cell.Back.isShoreSand && ((uint)(this.cell.Back.shore / num7) & 2u) != 0 && this.cell.Right.isShoreSand && ((uint)(this.cell.Right.shore / num7) & (true ? 1u : 0u)) != 0)
{
param.tile = 786f;
param.matColor = GetColorInt(ref this.cell.BackRight.matFloor.matColor, this.cell.BackRight.sourceFloor.colorMod);
passShore.Add(param);
Draw(56);
}
if (this.cell.Front.isShoreSand && ((uint)(this.cell.Front.shore / num9) & 2u) != 0 && this.cell.Right.isShoreSand && ((uint)(this.cell.Right.shore / num9) & 4u) != 0)
if (this.cell.Front.isShoreSand && ((uint)(this.cell.Front.shore / num7) & 2u) != 0 && this.cell.Right.isShoreSand && ((uint)(this.cell.Right.shore / num7) & 4u) != 0)
{
param.tile = 787f;
param.matColor = GetColorInt(ref this.cell.FrontRight.matFloor.matColor, this.cell.FrontRight.sourceFloor.colorMod);
passShore.Add(param);
Draw(48);
}
if (this.cell.Front.isShoreSand && ((uint)(this.cell.Front.shore / num9) & 8u) != 0 && this.cell.Left.isShoreSand && ((uint)(this.cell.Left.shore / num9) & 4u) != 0)
if (this.cell.Front.isShoreSand && ((uint)(this.cell.Front.shore / num7) & 8u) != 0 && this.cell.Left.isShoreSand && ((uint)(this.cell.Left.shore / num7) & 4u) != 0)
{
param.tile = 788f;
param.matColor = GetColorInt(ref this.cell.FrontLeft.matFloor.matColor, this.cell.FrontLeft.sourceFloor.colorMod);public virtual void DrawTile()
bool flag6 = false;
if (isShoreSand)
{
if (((uint)num10 & (true ? 1u : 0u)) != 0)
if (((uint)num8 & (true ? 1u : 0u)) != 0)
{
if (((uint)num10 & 8u) != 0)
if (((uint)num8 & 8u) != 0)
{
if ((num10 & 2) == 0 && (num10 & 4) == 0)
if ((num8 & 2) == 0 && (num8 & 4) == 0)
{
Draw(16);
}
flag6 = true;
}
if (((uint)num10 & 2u) != 0)
if (((uint)num8 & 2u) != 0)
{
if ((num10 & 8) == 0 && (num10 & 4) == 0)
if ((num8 & 8) == 0 && (num8 & 4) == 0)
{
Draw(20);
}
flag6 = true;
}
}
if (((uint)num10 & 4u) != 0)
if (((uint)num8 & 4u) != 0)
{
if (((uint)num10 & 8u) != 0)
if (((uint)num8 & 8u) != 0)
{
if ((num10 & 2) == 0 && (num10 & 1) == 0)
if ((num8 & 2) == 0 && (num8 & 1) == 0)
{
Draw(24);
}
flag6 = true;
}
if (((uint)num10 & 2u) != 0)
if (((uint)num8 & 2u) != 0)
{
if ((num10 & 8) == 0 && (num10 & 1) == 0)
if ((num8 & 8) == 0 && (num8 & 1) == 0)
{
Draw(28);
}public virtual void DrawTile()
batch = pass.batches[pass.batchIdx];
batch.tiles[pass.idx] = 608 + waterAnimeIndex % 4;
batch.matColors[pass.idx] = 104025f;
if (((uint)(this.cell.shore / num9) & (true ? 1u : 0u)) != 0)
if (((uint)(this.cell.shore / num7) & (true ? 1u : 0u)) != 0)
{
if (isShoreSand)
{public virtual void DrawTile()
batch = pass.batches[pass.batchIdx];
batch.tiles[pass.idx] = 612 + waterAnimeIndex % 4;
batch.matColors[pass.idx] = 104025f;
if (((uint)(this.cell.shore / num9) & 8u) != 0)
if (((uint)(this.cell.shore / num7) & 8u) != 0)
{
if (isShoreSand)
{public virtual void DrawTile()
param.z += bridgeFix.z;
param.dir = 0;
SourceBlock.Row row4 = sourceBridge._bridgeBlock;
float num12 = (float)(this.cell.bridgeHeight - this.cell.height) * _heightMod.y;
float num10 = (float)(this.cell.bridgeHeight - this.cell.height) * _heightMod.y;
if (this.cell.sourceFloor.tileType == TileType.Sky)
{
num12 += (float)EMono._map.config.skyBlockHeight;
num10 += (float)EMono._map.config.skyBlockHeight;
}
int num13 = (int)(num12 / heightBlockSize) + 2;
int num11 = (int)(num10 / heightBlockSize) + 2;
if (this.cell.bridgePillar != 0)
{
row4 = EMono.sources.blocks.rows[this.cell.bridgePillar];
param.tile = row4._tiles[0] + ((num13 == 2) ? 32 : 0);
param.tile = row4._tiles[0] + ((num11 == 2) ? 32 : 0);
param.mat = ((sourceBridge.DefaultMaterial == row4.DefaultMaterial) ? sourceBridge.DefaultMaterial : row4.DefaultMaterial);
param.matColor = ((row4.colorMod == 0) ? 104025 : GetColorInt(ref param.mat.matColor, row4.colorMod));
}public virtual void DrawTile()
}
param.y += ugFixBridgeTop.y;
param.z += ugFixBridgeTop.z;
for (int l = 0; l < num13; l++)
for (int l = 0; l < num11; l++)
{
if (l == num13 - 1)
if (l == num11 - 1)
{
param.y = (float)(cz - cx) * screen.tileAlign.y + (float)height * _heightMod.y + ugFixBridgeBottom.y;
param.z = 1000f + param.x * screen.tileWeight.x + param.y * screen.tileWeight.z + (float)height * _heightMod.z + ugFixBridgeBottom.z;public virtual void DrawTile()
{
snowed = false;
}
int num14 = 0;
int num12 = 0;
if (sourceBlock.id != 0)
{
this.tileType = sourceBlock.tileType;public virtual void DrawTile()
roomHeight = 0f;
break;
}
int num15 = ((this.room.data.maxHeight == 0) ? 2 : this.room.data.maxHeight);
roomHeight = EMono.setting.render.roomHeightMod * (float)((this.room.lot.height < num15) ? this.room.lot.height : num15) + 0.01f * (float)this.room.lot.heightFix;
int num13 = ((this.room.data.maxHeight == 0) ? 2 : this.room.data.maxHeight);
roomHeight = EMono.setting.render.roomHeightMod * (float)((this.room.lot.height < num13) ? this.room.lot.height : num13) + 0.01f * (float)this.room.lot.heightFix;
}
break;
case WallClipMode.ByLot:public virtual void DrawTile()
}
if (!_lowblock && (double)roomHeight > 1.2 && this.tileType.RepeatBlock)
{
num14 = 1;
num12 = 1;
}
else if (lowBlock)
{
num14 = 2;
num12 = 2;
}
param.mat = matBlock;
param.dir = this.cell.blockDir;public virtual void DrawTile()
}
if (!_lowblock)
{
int num16 = ((currentRoom.data.maxHeight == 0) ? 2 : currentRoom.data.maxHeight);
roomHeight = EMono.setting.render.roomHeightMod * (float)((currentRoom.lot.height < num16) ? currentRoom.lot.height : num16) + 0.01f * (float)currentRoom.lot.heightFix;
int num14 = ((currentRoom.data.maxHeight == 0) ? 2 : currentRoom.data.maxHeight);
roomHeight = EMono.setting.render.roomHeightMod * (float)((currentRoom.lot.height < num14) ? currentRoom.lot.height : num14) + 0.01f * (float)currentRoom.lot.heightFix;
}
}
if (flag7)public virtual void DrawTile()
param.tile = EMono.sources.blocks.rows[0].ConvertTile(1000 + room.lot.idDeco2);
param.matColor = room.lot.colDeco2;
float y2 = param.y;
float num17 = param.z;
float num15 = param.z;
param.y += (float)room.lot.decoFix2 * 0.01f;
param.z += (float)room.lot.decoFix2 * 0.01f * heightModDeco;
rendererWallDeco.Draw(param);
param.y = y2;
param.z = num17;
param.z = num15;
}
}
room = this.cell.Right.room ?? this.cell.room;public virtual void DrawTile()
param.tile = EMono.sources.blocks.rows[0].ConvertTile(1000 + room.lot.idDeco2) * -1;
param.matColor = room.lot.colDeco2;
float y4 = param.y;
float num18 = param.z;
float num16 = param.z;
param.y += (float)room.lot.decoFix2 * 0.01f;
param.z += (float)room.lot.decoFix2 * 0.01f * heightModDeco;
rendererWallDeco.Draw(param);
param.y = y4;
param.z = num18;
param.z = num16;
}
}
break;public virtual void DrawTile()
}
else
{
int num19 = ((room4.data.maxHeight == 0) ? 2 : room4.data.maxHeight);
roomHeight = EMono.setting.render.roomHeightMod * (float)((room4.lot.height < num19) ? room4.lot.height : num19) + 0.01f * (float)room4.lot.heightFix;
int num17 = ((room4.data.maxHeight == 0) ? 2 : room4.data.maxHeight);
roomHeight = EMono.setting.render.roomHeightMod * (float)((room4.lot.height < num17) ? room4.lot.height : num17) + 0.01f * (float)room4.lot.heightFix;
}
}
Cell back2 = this.cell.Back;public virtual void DrawTile()
RenderData renderData2 = sourceBlock.renderData;
param.tile = sourceBlock._tiles[this.cell.blockDir % sourceBlock._tiles.Length];
param.matColor = ((sourceBlock.colorMod == 0) ? 104025 : GetColorInt(ref matBlock.matColor, sourceBlock.colorMod));
int num20 = this.cell.objDir + ((this.cell.objDir >= 7) ? this.cell.objDir : 0) + 1;
if (num20 == 0)
int num18 = this.cell.objDir + ((this.cell.objDir >= 7) ? this.cell.objDir : 0) + 1;
if (num18 == 0)
{
renderData2.Draw(param);
}
else
{
renderData2.DrawRepeat(param, num20, sourceBlock.tileType.RepeatSize);
renderData2.DrawRepeat(param, num18, sourceBlock.tileType.RepeatSize);
}
param.tile = renderData2.idShadow;
SourcePref shadowPref2 = renderData2.shadowPref;
int shadow4 = shadowPref2.shadow;
passShadow.AddShadow(param.x + renderData2.offsetShadow.x, param.y + renderData2.offsetShadow.y, param.z + renderData2.offsetShadow.z, ShadowData.Instance.items[shadow4], shadowPref2, 0, param.snow);
int shadow3 = shadowPref2.shadow;
passShadow.AddShadow(param.x + renderData2.offsetShadow.x, param.y + renderData2.offsetShadow.y, param.z + renderData2.offsetShadow.z, ShadowData.Instance.items[shadow3], shadowPref2, 0, param.snow);
break;
}
default:public virtual void DrawTile()
{
if (this.cell.room != null || !this.cell.IsRoomEdge || !showRoof)
{
goto IL_6f72;
goto IL_6f8a;
}
if (this.cell._block == 0 || !this.cell.sourceBlock.tileType.RepeatBlock)
{
Room obj = this.cell.FrontRight.room;
if (obj == null || !obj.HasRoof)
{
goto IL_6f72;
goto IL_6f8a;
}
}
}
goto IL_6fd2;
IL_6f72:
goto IL_6fea;
IL_6f8a:
if (!showRoof || !roof || this.cell.room == null || this.cell.Front.room == null || this.cell.Right.room == null)
{
param.tile = num14;
param.tile = num12;
rendererFov.Draw(param);
}
goto IL_6fd2;
IL_7b8d:
goto IL_6fea;
IL_7ba5:
if (detail.things.Count == 0 && detail.charas.Count == 0)
{
return;
}
int num21 = 0;
int num19 = 0;
thingPos.x = 0f;
thingPos.y = 0f;
thingPos.z = 0f;public virtual void DrawTile()
}
Thing thing = null;
bool shadow = liquidLv == 0;
float num22 = 0f;
float num23 = 0f;
float num20 = 0f;
float num21 = 0f;
bool flag10 = false;
float num24 = 0f;
float num22 = 0f;
bool flag11 = false;
float num25 = 0f;
float num23 = 0f;
if (detail.things.Count > 0 && isSeen)
{
_ = zSetting.max1;
float num26 = 0f;
float num24 = 0f;
for (int m = 0; m < detail.things.Count; m++)
{
Thing t = detail.things[m];public virtual void DrawTile()
{
pref = rendererObjDummy.shadowPref;
}
float num27 = ((tileType.UseMountHeight && isInstalled) ? 0f : ((pref.height < 0f) ? 0f : ((pref.height == 0f) ? 0.1f : pref.height)));
float num25 = ((tileType.UseMountHeight && isInstalled) ? 0f : ((pref.height < 0f) ? 0f : ((pref.height == 0f) ? 0.1f : pref.height)));
if (t.ignoreStackHeight)
{
thingPos.y -= num22;
thingPos.y -= num20;
}
shadow = thingPos.y < 0.16f && num25 < 0.16f;
shadow = thingPos.y < 0.16f && num23 < 0.16f;
_ = pref.bypassShadow;
param.shadowFix = 0f - thingPos.y;
param.liquidLv = ((thingPos.y + (float)t.altitude < 0.1f) ? liquidLv : 0);public virtual void DrawTile()
SetRoofHeight(param, this.cell, cx, cz);
_actorPos.x = param.x;
_actorPos.y = param.y;
_actorPos.z = param.z + num26;
_actorPos.z = param.z + num24;
if (this.room != null)
{
param.color = GetRoofLight(this.room.lot);public virtual void DrawTile()
else
{
param.snow = snowed;
_actorPos.x = orgX + num23;
_actorPos.x = orgX + num21;
_actorPos.y = orgY;
_actorPos.z = orgZ + num26 + thingPos.z;
_actorPos.z = orgZ + num24 + thingPos.z;
if (tileType.CanStack || !isInstalled)
{
if (thing?.id != t.id)public virtual void DrawTile()
_actorPos.y += thingPos.y;
if (t.trait.IgnoreLastStackHeight && (thing == null || !thing.trait.IgnoreLastStackHeight))
{
thingPos.y -= num22;
thingPos.y -= num20;
if (thing != null)
{
_actorPos.z -= 0.2f;
thingPos.z -= 0.2f;
}
_actorPos.y -= num22;
_actorPos.y -= num20;
}
_actorPos.z += renderSetting.thingZ + (float)m * -0.01f + zSetting.mod1 * thingPos.y;
}public virtual void DrawTile()
freePos.z += rampFix2.z;
if (!this.cell.IsTopWater || t.altitude > 0)
{
num25 += rampFix2.y;
num23 += rampFix2.y;
}
liquidLv -= (int)(rampFix2.y * 150f);
if (liquidLv < 0)public virtual void DrawTile()
}
else if (!flag11 && t.trait.IsChangeFloorHeight && !t.ignoreStackHeight)
{
orgY += num27 + (float)t.altitude * altitudeFix.y;
orgY += num25 + (float)t.altitude * altitudeFix.y;
orgZ += (float)t.altitude * altitudeFix.z;
freePos.y += num27 + (float)t.altitude * altitudeFix.y;
freePos.y += num25 + (float)t.altitude * altitudeFix.y;
if (!this.cell.IsTopWater || t.altitude > 0)
{
num25 += num27 + (float)t.altitude * altitudeFix.y;
num23 += num25 + (float)t.altitude * altitudeFix.y;
}
_actorPos.x += pref.x * (float)((!t.flipX) ? 1 : (-1));
_actorPos.z += pref.z;public virtual void DrawTile()
}
else
{
thingPos.y += num27;
thingPos.y += num25;
_actorPos.x += pref.x * (float)((!t.flipX) ? 1 : (-1));
_actorPos.z += pref.z;
if (pref.height >= 0f)public virtual void DrawTile()
}
else
{
thingPos.y += num27;
thingPos.y += num25;
_actorPos.x += pref.x * (float)((!t.flipX) ? 1 : (-1));
_actorPos.z += pref.z;
thingPos.z += pref.z;public virtual void DrawTile()
if (t.isFloating && isWater && !hasBridge && !flag)
{
flag = true;
float num28 = ((this.cell._bridge != 0) ? sourceBridge.tileType.FloorHeight : sourceFloor.tileType.FloorHeight);
orgY += 0.01f * floatY - num28;
float num26 = ((this.cell._bridge != 0) ? sourceBridge.tileType.FloorHeight : sourceFloor.tileType.FloorHeight);
orgY += 0.01f * floatY - num26;
if (!t.trait.IsChangeFloorHeight)
{
num24 = num27;
num22 = num25;
}
_actorPos.y += 0.01f * floatY - num28;
_actorPos.y += 0.01f * floatY - num26;
if (liquidLv > 10)
{
liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;public virtual void DrawTile()
}
param.liquidLv = liquidLv;
}
num22 = num27;
num20 = num25;
if (t.sourceCard.multisize && !t.trait.IsGround)
{
num26 += zSetting.multiZ;
num24 += zSetting.multiZ;
}
orgZ += t.renderer.data.stackZ;
if (param.liquidLv > 0)public virtual void DrawTile()
{
if (iconMode != 0)
{
int num29 = 0;
int num27 = 0;
switch (iconMode)
{
case CardIconMode.Visibility:
if (t.isMasked)
{
num29 = 17;
num27 = 17;
}
break;
case CardIconMode.State:
if (t.placeState == PlaceState.installed)
{
num29 = 18;
num27 = 18;
}
break;
case CardIconMode.Deconstruct:
if (t.isDeconstructing)
{
num29 = 14;
num27 = 14;
}
break;
}
if (t.isNPCProperty && !EMono.debug.godBuild)
{
num29 = 13;
num27 = 13;
}
if (num29 != 0)
if (num27 != 0)
{
passGuideBlock.Add(_actorPos.x, _actorPos.y, _actorPos.z - 10f, num29);
passGuideBlock.Add(_actorPos.x, _actorPos.y, _actorPos.z - 10f, num27);
}
}
t.SetRenderParam(param);public virtual void DrawTile()
}
if (isInstalled)
{
num23 += pref.stackX * (float)((!t.flipX) ? 1 : (-1));
num21 += pref.stackX * (float)((!t.flipX) ? 1 : (-1));
}
param.x = orgX;
param.y = orgY;public virtual void DrawTile()
}
}
}
orgY += num24;
orgY += num22;
if (detail.charas.Count <= 0)
{
return;
}
param.shadowFix = 0f - num25;
param.shadowFix = 0f - num23;
param.color += 1310720f;
float max = zSetting.max2;
for (int n = 0; n < detail.charas.Count; n++)public virtual void DrawTile()
{
Vector3 position = restrainer.owner.renderer.position;
float defCharaHeight = EMono.setting.render.defCharaHeight;
float num30 = getRestrainPos.y + defCharaHeight - ((chara.Pref.height == 0f) ? defCharaHeight : chara.source.pref.height);
float num28 = getRestrainPos.y + defCharaHeight - ((chara.Pref.height == 0f) ? defCharaHeight : chara.source.pref.height);
_actorPos.x = position.x + getRestrainPos.x * (float)((restrainer.owner.dir % 2 == 0) ? 1 : (-1));
_actorPos.y = position.y + num30;
_actorPos.y = position.y + num28;
_actorPos.z = position.z + getRestrainPos.z;
param.liquidLv = 0;
param.shadowFix = orgY - _actorPos.y;public virtual void DrawTile()
{
if (chara.IsDeadOrSleeping && chara.IsPCC)
{
float num31 = chara.renderer.data.size.y * 0.3f;
float num29 = chara.renderer.data.size.y * 0.3f;
if (thingPos.y > max)
{
thingPos.y = max;
}
float num32 = thingPos.y + num31;
float num33 = (float)n * -0.01f;
if (num32 > zSetting.thresh1)
float num30 = thingPos.y + num29;
float num31 = (float)n * -0.01f;
if (num30 > zSetting.thresh1)
{
num33 = zSetting.mod1;
num31 = zSetting.mod1;
}
_actorPos.x += thingPos.x;
_actorPos.y += thingPos.y;
_actorPos.z += renderSetting.laydownZ + num33;
_actorPos.z += renderSetting.laydownZ + num31;
param.liquidLv = ((thingPos.y == 0f && liquidLv > 0) ? 90 : 0);
thingPos.y += num31 * 0.8f;
thingPos.y += num29 * 0.8f;
chara.renderer.Draw(param, ref _actorPos, liquidLv == 0);
}
elsepublic virtual void DrawTile()
{
if (chara.Pref.FloatUnderwater)
{
float num34 = ((this.cell._bridge != 0) ? sourceBridge.tileType.FloorHeight : sourceFloor.tileType.FloorHeight);
float num35 = floatYs[chara.uid % 10] + 10f + (float)(chara.uid % 30);
orgY += 0.01f * num35 - num34;
_actorPos.y += 0.01f * num35 - num34;
param.shadowFix -= 0.01f * num35 - num34;
float num32 = ((this.cell._bridge != 0) ? sourceBridge.tileType.FloorHeight : sourceFloor.tileType.FloorHeight);
float num33 = floatYs[chara.uid % 10] + 10f + (float)(chara.uid % 30);
orgY += 0.01f * num33 - num32;
_actorPos.y += 0.01f * num33 - num32;
param.shadowFix -= 0.01f * num33 - num32;
}
}
else if (liquidLv > 0)public virtual void DrawTile()
{
if (liquidLv > 20)
{
float num36 = ((this.cell._bridge != 0) ? sourceBridge.tileType.FloorHeight : sourceFloor.tileType.FloorHeight);
orgY += 0.01f * floatY - num36;
_actorPos.y += 0.01f * floatY - num36;
int num37 = TileType.FloorWaterShallow.LiquidLV * 10;
num37 -= (int)(floatY * 0.5f);
param.liquidLv = num37;
float num34 = ((this.cell._bridge != 0) ? sourceBridge.tileType.FloorHeight : sourceFloor.tileType.FloorHeight);
orgY += 0.01f * floatY - num34;
_actorPos.y += 0.01f * floatY - num34;
int num35 = TileType.FloorWaterShallow.LiquidLV * 10;
num35 -= (int)(floatY * 0.5f);
param.liquidLv = num35;
}
else
{public virtual void DrawTile()
}
if (!chara.IsPC && !chara.renderer.IsMoving && detail.charas.Count > 1 && (detail.charas.Count != 2 || !detail.charas[0].IsDeadOrSleeping || !detail.charas[0].IsPCC))
{
_actorPos += renderSetting.charaPos[1 + ((num21 < 4) ? num21 : 3)];
_actorPos += renderSetting.charaPos[1 + ((num19 < 4) ? num19 : 3)];
}
_actorPos.z += 0.01f * (float)n + renderSetting.charaZ;
num21++;
num19++;
if (flag10)
{
_actorPos.z += chara.renderer.data.hangedFixZ;public virtual void DrawTile()
param.y = orgY;
param.z = orgZ;
}
return;
IL_6fea:
if (isSnowCovered && (sourceBlock.id != 0 || this.cell.hasDoor) && !snowed && !this.cell.isClearSnow && ((!this.cell.Front.HasRoof && !this.cell.Front.HasBlock) || (!this.cell.Right.HasRoof && !this.cell.Right.HasBlock)))
{
snowed = true;
}
if (this.cell.effect != null)
{
if (this.cell.effect.IsLiquid)
{
SourceCellEffect.Row sourceEffect = this.cell.sourceEffect;
SourceMaterial.Row defaultMaterial = sourceEffect.DefaultMaterial;
tile = 4 + Rand.bytes[index % Rand.MaxBytes] % 4;
param.tile = tile + this.cell.sourceEffect._tiles[0];
param.mat = defaultMaterial;
param.matColor = ((this.cell.effect.color == 0) ? GetColorInt(ref defaultMaterial.matColor, sourceEffect.colorMod) : this.cell.effect.color);
sourceEffect.renderData.Draw(param);
}
else
{
param.tile = this.cell.effect.source._tiles[0];
SourceCellEffect.Row sourceEffect2 = this.cell.sourceEffect;
if (sourceEffect2.anime.Length != 0)
{
if (sourceEffect2.anime.Length > 2)
{
float num36 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.anime[1] % (float)sourceEffect2.anime[2];
if (!(num36 >= (float)sourceEffect2.anime[0]))
{
param.tile += num36;
}
}
else
{
float num37 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.anime[1] % (float)sourceEffect2.anime[0];
param.tile += num37;
}
}
if (this.cell.effect.IsFire)
{
rendererEffect.Draw(param);
}
else
{
this.cell.effect.source.renderData.Draw(param);
}
}
}
param.color = floorLight;
if (this.cell.critter != null)
{
Critter critter = this.cell.critter;
int snowTile = critter.tile;
if (snowed && critter.SnowTile != 0)
{
critter.x = 0.06f;
critter.y = -0.06f;
snowTile = critter.SnowTile;
}
else
{
critter.Update();
}
pass = passObjSS;
batch = pass.batches[pass.batchIdx];
batch.matrices[pass.idx].m03 = param.x + (float)(int)(critter.x * 100f) * 0.01f;
batch.matrices[pass.idx].m13 = param.y + (float)(int)(critter.y * 100f) * 0.01f;
batch.matrices[pass.idx].m23 = param.z;
batch.tiles[pass.idx] = snowTile * ((!critter.reverse) ? 1 : (-1));
batch.colors[pass.idx] = floorLight;
pass.idx++;
if (pass.idx == pass.batchSize)
{
pass.NextBatch();
}
}
if (detail != null)
{
TransAnime anime3 = detail.anime;
if (anime3 != null && !anime3.animeBlock)
{
TransAnime anime4 = detail.anime;
param.x += anime4.v.x;
param.y += anime4.v.y;
param.z += anime4.v.z;
}
}
if (this.cell.obj != 0 && !this.cell.sourceObj.renderData.SkipOnMap)
{
SourceObj.Row sourceObj = this.cell.sourceObj;
if (!snowed || sourceObj.snowTile <= 0)
{
param.snow = snowed;
param.mat = this.cell.matObj;
orgY = param.y;
if (param.liquidLv > 0)
{
if (sourceObj.pref.Float)
{
param.y += 0.01f * floatY;
if (liquidLv > 10)
{
liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;
}
liquidLv -= (int)(floatY * 0.5f);
param.liquidLv = liquidLv;
}
if (sourceObj.tileType.IsWaterTop)
{
param.liquidLv = 0;
}
else
{
param.liquidLv += sourceObj.pref.liquidMod;
if (param.liquidLv < 1)
{
param.liquid = 1f;
}
else if (param.liquidLv > 99 + sourceObj.pref.liquidModMax)
{
param.liquidLv = 99 + sourceObj.pref.liquidModMax;
}
}
}
if (sourceObj.useAltColor)
{
param.matColor = ((sourceObj.colorMod == 0) ? 104025 : GetColorInt(ref param.mat.altColor, sourceObj.colorMod));
}
else
{
param.matColor = ((sourceObj.colorMod == 0) ? 104025 : GetColorInt(ref param.mat.matColor, sourceObj.colorMod));
}
if (sourceObj.HasGrowth)
{
this.cell.growth.OnRenderTileMap(param);
if (this.cell.obj == 118 && Core.fixedFrame % 10f == 0f && sourceObj.growth.IsMature)
{
EMono.scene.psFey.transform.position = new Vector3(param.x, param.y, param.z - 2f);
EMono.scene.psFey.Emit(1);
}
}
else
{
if (this.cell.autotileObj != 0)
{
param.tile = sourceObj._tiles[0] + this.cell.autotileObj;
}
else if (sourceObj.tileType.IsUseBlockDir)
{
param.tile = sourceObj._tiles[this.cell.blockDir % sourceObj._tiles.Length];
}
else
{
param.tile = sourceObj._tiles[this.cell.objDir % sourceObj._tiles.Length];
}
if (_lowblock && sourceObj.tileType.IsSkipLowBlock)
{
param.tile += ((param.tile > 0f) ? 1 : (-1)) * 3000000;
}
orgY = param.y;
orgZ = param.z;
param.y += sourceObj.pref.y;
param.z += sourceObj.pref.z;
sourceObj.renderData.Draw(param);
param.y = orgY;
param.z = orgZ;
int shadow4 = sourceObj.pref.shadow;
if (shadow4 > 1 && !this.cell.ignoreObjShadow)
{
passShadow.AddShadow(param.x + sourceObj.renderData.offsetShadow.x, param.y + sourceObj.renderData.offsetShadow.y, param.z + sourceObj.renderData.offsetShadow.z, ShadowData.Instance.items[shadow4], sourceObj.pref, 0, param.snow);
}
param.y = orgY;
}
}
}
if (this.cell.decal != 0 && sourceFloor.tileType.AllowBlood)
{
passDecal.Add(param, (int)this.cell.decal, floorLight);
}
if (highlightCells)
{
switch (ActionMode.FlagCell.mode)
{
case AM_FlagCell.Mode.flagWallPillar:
if (this.cell.isToggleWallPillar)
{
passArea.Add(param, 34f, 0f);
}
break;
case AM_FlagCell.Mode.flagSnow:
if (this.cell.isClearSnow)
{
passArea.Add(param, 34f, 0f);
}
break;
case AM_FlagCell.Mode.flagFloat:
if (this.cell.isForceFloat)
{
passArea.Add(param, 34f, 0f);
}
break;
case AM_FlagCell.Mode.flagClear:
if (this.cell.isClearArea)
{
passArea.Add(param, 34f, 0f);
}
break;
}
}
if (detail == null)
{
return;
}
if (highlightArea && detail.area != null)
{
passArea.Add(param, (int)detail.area.GetTile(index) - ((!subtleHighlightArea) ? 1 : 0), 0f);
}
if (detail.footmark != null && sourceFloor.id != 0)
{
param.tile = detail.footmark.tile;
param.mat = matFloor;
param.matColor = 104025f;
renderFootmark.Draw(param);
}
goto IL_7ba5;
void Draw(int tile)
{
pass = passEdge;Card
private void _OnSerializing(StreamingContext context)
_ints[0] = _bits1.ToInt();
_ints[2] = _bits2.ToInt();
_placeState = placeState;
version = 2;
OnSerializing();
}protected virtual void OnSerializing()
[OnDeserialized]
private void _OnDeserialized(StreamingContext context)
{
if (version < 2)
if (version < 2 && sockets != null)
{
if (sockets != null)
for (int i = 0; i < sockets.Count; i++)
{
for (int i = 0; i < sockets.Count; i++)
{
sockets[i] = sockets[i] / 100 * 1000 + sockets[i] % 100;
}
sockets[i] = sockets[i] / 100 * 1000 + sockets[i] % 100;
}
version = 2;
}
_bits1.SetInt(_ints[0]);
_bits2.SetInt(_ints[2]);private void _OnDeserialized(StreamingContext context)
{
isDestroyed = true;
}
if (version < 3)
{
if (version < 3 && isChara && HasElement(1210))
{
elements.ModBase(960, -5 * Evalue(1210));
}
version = 3;
}
}
protected virtual void OnDeserialized()public void Create(string _id, int _idMat = -1, int genLv = -1)
EClass.game.cards.AssignUID(this);
this.genLv = genLv;
isNew = true;
version = 3;
SetSource();
OnBeforeCreate();
if (sourceCard.quality != 0)public void PurgeDuplicateArtifact(Thing af)
}
}
public void PurgeEythArtifact()
{
if (!EClass.pc.IsEyth || !EClass.pc.HasElement(1228))
{
return;
}
List<Chara> list = new List<Chara>();
foreach (FactionBranch child in EClass.pc.faction.GetChildren())
{
foreach (Chara member in child.members)
{
list.Add(member);
}
}
foreach (Chara chara in EClass._map.charas)
{
list.Add(chara);
}
foreach (Chara item in list)
{
if (item.IsPCFactionOrMinion)
{
Thing thing = item.things.Find((Thing t) => t.HasTag(CTAG.godArtifact) && t.c_idDeity == "eyth");
if (thing != null)
{
PurgeDuplicateArtifact(thing);
}
break;
}
}
}
public void RemoveThings()
{
for (int num = things.Count - 1; num >= 0; num--)public void DamageHP(long dmg, int ele, int eleP = 100, AttackSource attackSourc
}
foreach (Chara chara5 in EClass._map.charas)
{
if (Chara.IsFriendOrAbove(chara5) && chara5.HasElement(1408) && chara5.faith == EClass.game.religions.Healing && EClass.world.date.GetRawDay() != chara5.GetInt(58) && (!chara5.IsPCFaction || IsPCFaction))
if (Chara.IsFriendOrAbove(chara5) && chara5.HasElement(1408) && chara5.faith == EClass.game.religions.Healing && EClass.world.date.GetRawDay() != chara5.GetInt(58) && (!chara5.IsPCFaction || IsPCFaction) && (chara5.memberType != FactionMemberType.Livestock || Chara.memberType == FactionMemberType.Livestock))
{
Msg.alwaysVisible = true;
Msg.Say("layhand", chara5, this);Chara
public class Chara : Card, IPathfindWalker
public bool visibleWithTelepathy;
public bool isWeakToSunlight;
public SpriteReplacer spriteReplacer;
private Faction _faction;public void Refresh(bool calledRecursive = false)
isWet = false;
_isLevitating = HasElement(401) || (ride != null && ride._isLevitating);
canSeeInvisible = HasElement(416);
isWeakToSunlight = HasElement(1250) && !HasElement(431);
base.isHidden = HasElement(415);
foreach (Condition condition in conditions)
{ }
break;
}
case 5:
case 30:
if (isWeakToSunlight && pos.IsSunLit)
{
AddCondition<ConBurning>(1000, force: true);
}
break;
}
if (turn % 200 == 0)
{public void Sleep(Thing bed = null, Thing pillow = null, bool pickup = false, It
public void OnSleep(Thing bed = null, int days = 1)
{
bool isSunLit = pos.IsSunLit;
TraitPillow traitPillow = pos.FindThing<TraitPillow>();
int num = bed?.Power ?? 20;
if (traitPillow != null)public void OnSleep(Thing bed = null, int days = 1)
if (bed != null)
{
num += bed.Evalue(750) * 5;
if (bed.trait is TraitBedCoffin)
{
isSunLit = false;
}
}
OnSleep(num, days);
OnSleep(num, days, isSunLit);
}
public void OnSleep(int power, int days = 1)
public void OnSleep(int power, int days = 1, bool isSunLit = false)
{
if (days < 1)
{public void OnSleep(int power, int days = 1)
{
stamina.Set(1);
}
HealHP(num);
stamina.Mod(10 + 25 * num / 100 * (100 + elements.GetFeatRef(1642)) / 100);
mana.Mod(num);
if (isWeakToSunlight && isSunLit)
{
base.hp = 0;
if (mana.value > 0)
{
mana.Set(0);
}
AddCondition<ConBurning>(1000, force: true);
}
else
{
HealHP(num);
stamina.Mod(10 + 25 * num / 100 * (100 + elements.GetFeatRef(1642)) / 100);
mana.Mod(num);
}
if (IsPCFaction)
{
hunger.Mod(20);ConSleep
public static void SuccubusVisit(Chara tg)
chara.SetAI(new AI_Fuck
{
target = tg,
succubus = true
variation = AI_Fuck.Variation.Succubus
});
}
}ConTransmute
public class ConTransmute : BaseBuff
{
public override bool IsToggle => true;
public override bool ShouldRefresh => true;
public override void Tick()
{
if (owner.host == null && owner.conSleep == null && (EClass.pc.conSleep == null || EClass.pc.conSleep.pcSleep == 0))ConTransmuteBat
public class ConTransmuteBat : ConTransmute
public class ConTransmuteBat : ConTransmute
{
public override bool HasDuration => false;
public override RendererReplacer GetRendererReplacer()
{
return RendererReplacer.CreateFrom("bat_vampire");
return RendererReplacer.CreateFrom("bat");
}
public override void Tick()
{
}
}ContentConfigTest
public class ContentConfigTest : ContentConfig
public Slider sliderBrightness;
public Slider sliderExtraHeight;
public override void OnInstantiate()
{
List<SkinRootStatic> mainSkins = EClass.ui.skins.mainSkins;public override void OnInstantiate()
}
return Lang.Get("brightnessNight") + "(" + (int)(a + 100f) + "%)";
});
SetSlider(sliderExtraHeight, base.config.test.screenExtraHeight, delegate(float a)
{
base.config.test.screenExtraHeight = (int)a;
base.config.ApplyGrading();
return Lang.Get("screenExtraHeight") + "(" + (int)a + ")";
});
}
}CoreConfig
public int extraToneMTP;
public int screenExtraWidth;
public int screenExtraHeight;
public bool showNumbers;
public bool stackNumbers;CoreDebug
Chara targetChara = EClass.scene.mouseTarget.TargetChara;
if (targetChara != null)
{
EClass.pc.Pick(CraftUtil.MakeLoveLunch(targetChara));
EClass.pc.Pick(CraftUtil.MakeDarkSoup());
EClass.pc.Pick(targetChara.MakeMilk());
EClass.pc.Pick(targetChara.MakeGene());
EClass.pc.Pick(targetChara.MakeBraineCell());
EClass.pc.Pick(targetChara.MakeEgg(effect: true, 10));
targetChara.ModAffinity(EClass.pc, 10000);
EClass.pc.Pick(CraftUtil.MakeBloodMeal(EClass.pc, targetChara));
}
targetChara.ScaleByPrincipal();
if (EClass.game.quests.Get<QuestDebt>() == null)CraftUtil
public static void MakeDish(Thing food, int lv, Chara crafter = null)
}
}
public static Thing MakeBloodMeal(Chara sucker, Chara feeder)
{
int lV = feeder.LV;
lV = lV / 10 * 10 + 10;
Rand.SetSeed(EClass.game.seed + feeder.uid);
Thing thing = ThingGen.CreateFromCategory("meal", lV);
sucker.Say("food_blood", thing);
Rand.SetSeed(EClass.game.seed + feeder.uid);
MakeDish(thing, lV);
Rand.SetSeed();
if (thing.HasElement(708))
{
thing.elements.Remove(708);
}
thing.elements.ModBase(710, 1);
return thing;
}
public static Thing MakeDarkSoup()
{
Thing thing = ThingGen.Create("soup_dark");DNA
if (model.ability.list.items.Count != 0)
{
ActList.Item a = model.ability.list.items.RandomItem();
if (!(a.act.source.category != "ability"))
if (!(a.act.source.category != "ability") && a.act.source.geneSlot >= 0)
{
AddVal(a.act.source.id, a.chance * ((!a.pt) ? 1 : (-1)), allowStack: false, (int v) => 8 + a.act.source.cost[0] / 10 * 2);
action++;DOMAIN
public class DOMAIN
{
public const int domComm = 805;
public const int domElement = 806;
public const int domFaith = 802;
public const int domSurvival = 801;
public const int domTest = 800;
public const int domArcane = 804;
public const int domFaith = 802;
public const int domElement = 806;
public const int domMiracle = 803;
public const int domArcane = 804;
public const int domComm = 805;
public const int domWind = 807;
public const int domHarvest = 808;
public static readonly int[] IDS = new int[16]
{
805, 806, 801, 800, 804, 802, 803, 807, 808, 810,
802, 801, 800, 806, 803, 804, 805, 807, 808, 810,
811, 812, 813, 814, 815, 809
};
}ELEMENT
public const int _void = 0;
public const int poison = 20;
public const int old_antidote = 25;
public const int piety = 85;
public const int race = 29;
public const int piety = 85;
public const int cure = 26;
public const int old_heal = 24;
public const int heat = 16;
public const int cure = 26;
public const int water = 15;
public const int poison = 20;
public const int hardness = 13;
public const int growth = 14;
public const int size = 12;
public const int lv = 1;
public const int weight = 11;
public const int water = 15;
public const int nutrition = 10;
public const int d = 3;
public const int socket = 5;
public const int d = 3;
public const int quality = 2;
public const int lv = 1;
public const int weight = 11;
public const int growth = 14;
public const int size = 12;
public const int old_antidote = 25;
public const int hardness = 13;
public const int nutrition = 10;
public static readonly int[] IDS = new int[36]
{
752, 753, 754, 755, 756, 762, 760, 761, 763, 765,
751, 759, 750, 0, 20, 29, 85, 24, 23, 22,
21, 18, 17, 16, 26, 15, 13, 12, 11, 10,
5, 3, 2, 1, 14, 25
751, 759, 750, 0, 25, 85, 29, 26, 24, 23,
22, 21, 18, 17, 16, 20, 14, 1, 15, 3,
5, 2, 11, 12, 13, 10
};
}
public class Element : EClasspublic int GetSortVal(UIList.SortMode m)
}
return id;
default:
return source.id;
if (source.sort == 0)
{
return source.id;
}
return source.sort;
}
}ENC
public class ENC
{
public const int innocence = 418;
public const int encTail = 419;
public const int negateBlind = 421;
public const int negateParalysis = 422;
public const int invisibility = 415;
public const int seeInvisible = 416;
public const int invisibility = 415;
public const int loving = 417;
public const int negatePoison = 420;
public const int innocence = 418;
public const int encHit = 414;
public const int loving = 417;
public const int encTail = 419;
public const int encRagnarok = 667;
public const int negatePoison = 420;
public const int absorbHP = 660;
public const int negateParalysis = 422;
public const int negateSleep = 424;
public const int meleeDistance = 666;
public const int planter = 665;
public const int slowCorruption = 412;
public const int permaCurse = 656;
public const int absorbHP = 660;
public const int meleeDistance = 666;
public const int encRagnarok = 667;
public const int encSpell = 411;
public const int redirect_blaser = 383;
public const int negateTeleport = 400;
public const int corruption = 409;
public const int negateBlind = 421;
public const int negateFear = 423;
public const int convertImpact = 865;
public const int rusher = 382;
public const int onlyPet = 655;
public const int redirect_blaser = 383;
public const int negateTeleport = 400;
public const int permaCurse = 656;
public const int levitation = 401;
public const int throwReturn = 410;
public const int noDamage = 654;
public const int onlyPet = 655;
public const int convertFire = 850;
public const int eco = 652;
public const int sustain_MAG = 446;
public const int living = 653;
public const int sustain_CHA = 447;
public const int bane_fish = 467;
public const int strongStomach = 480;
public const int bane_all = 468;
public const int revealFaith = 481;
public const int strongStomach = 480;
public const int force_weapon = 482;
public const int optimizeMana = 483;
public const int sustain_WIL = 445;
public const int slot_rune = 484;
public const int sustain_LER = 444;
public const int sustain_MAG = 446;
public const int sustain_DEX = 442;
public const int nonLethal = 485;
public const int living = 653;
public const int sustain_WIL = 445;
public const int negateSleep = 424;
public const int sustain_PER = 443;
public const int negateConfusion = 425;
public const int noDamage = 654;
public const int negateSteal = 426;
public const int negateShockwave = 430;
public const int negateSunburn = 431;
public const int defense_range = 435;
public const int guts = 436;
public const int sustain_END = 441;
public const int sustain_PER = 443;
public const int nonLethal = 485;
public const int bane_all = 468;
public const int sustain_DEX = 442;
public const int mod_splash = 608;
public const int sustain_LER = 444;
public const int mod_feint = 623;
public const int safetyMeasure = 486;
public const int mod_cleave = 622;
public const int revealFaith = 481;
public const int mod_flurry = 621;
public const int deathagony = 488;
public const int mod_chaser = 620;
public const int negateConfusion = 425;
public const int mod_talisman = 609;
public const int mod_frustration = 624;
public const int negateFear = 423;
public const int r_life = 640;
public const int r_mana = 641;
public const int r_DV = 650;
public const int safetyMeasure = 486;
public const int r_PV = 651;
public const int mod_frustration = 624;
public const int creativeChef = 487;
public const int mod_scatter = 607;
public const int mod_flurry = 621;
public const int mod_drill = 606;
public const int mod_chaser = 620;
public const int r_life = 640;
public const int mod_talisman = 609;
public const int mod_ammo_recover = 604;
public const int mod_cleave = 622;
public const int creativeChef = 487;
public const int mod_scatter = 607;
public const int mod_ammo_knockback = 603;
public const int mod_splash = 608;
public const int mod_rapid = 602;
public const int mod_feint = 623;
public const int deathagony = 488;
public const int mod_precision = 605;
public const int music_drunk = 489;
public const int mod_ammo_recover = 604;
public const int mod_ammo_knockback = 603;
public const int mod_ammo = 600;
public const int mod_reload = 601;
public const int r_PV = 651;
public const int eco = 652;
public const int mod_precision = 605;
public const int mod_drill = 606;
public const int mod_rapid = 602;
public static readonly int[] IDS = new int[103]
public static readonly int[] IDS = new int[104]
{
418, 419, 422, 416, 415, 420, 414, 417, 667, 660,
665, 664, 663, 662, 661, 412, 656, 666, 411, 383,
409, 421, 865, 852, 851, 380, 381, 382, 655, 400,
401, 402, 403, 404, 405, 406, 407, 408, 410, 654,
850, 652, 446, 447, 450, 460, 461, 462, 463, 464,
465, 466, 467, 480, 481, 482, 483, 445, 484, 444,
442, 653, 424, 425, 426, 427, 428, 429, 430, 435,
436, 437, 438, 439, 440, 441, 443, 485, 468, 608,
623, 622, 621, 620, 609, 423, 641, 650, 486, 624,
607, 606, 640, 604, 487, 603, 602, 488, 489, 600,
601, 651, 605
421, 415, 416, 417, 418, 414, 419, 420, 422, 424,
666, 665, 664, 663, 662, 661, 412, 660, 667, 411,
400, 409, 423, 865, 852, 851, 380, 381, 382, 383,
656, 401, 402, 403, 404, 405, 406, 407, 408, 410,
655, 850, 653, 447, 450, 460, 461, 462, 463, 464,
465, 466, 467, 468, 480, 482, 483, 484, 446, 485,
445, 443, 654, 426, 427, 428, 429, 430, 431, 435,
436, 437, 438, 439, 440, 441, 442, 444, 486, 481,
488, 425, 624, 640, 641, 650, 651, 487, 621, 620,
609, 622, 607, 608, 623, 605, 489, 604, 603, 600,
601, 652, 606, 602
};
}FACTION
public class FACTION
{
public const int bfLandmark4 = 3783;
public const int bfLandmark5 = 3784;
public const int bfLandmark2 = 3781;
public const int bfLandmark3 = 3782;
public const int fRation = 2207;
public const int bfLandmark2 = 3781;
public const int bfLandmark1 = 3780;
public const int bfBreed = 3710;
public const int bfBasin = 3709;
public const int bfMonster = 3707;
public const int bfFreshAir = 3708;
public const int bfMonster = 3707;
public const int bfLandmark4 = 3783;
public const int bfFish = 3706;
public const int bfBasin = 3709;
public const int bfLandmark3 = 3782;
public const int fTaxEvasion = 2119;
public const int fFood = 2204;
public const int fAdmin = 2115;
public const int fEducation = 2116;
public const int fAdmin = 2115;
public const int fLoyal = 2117;
public const int fLuck = 2118;
public const int fTaxEvasion = 2119;
public const int fHeirloom = 2120;
public const int fSoil = 2200;
public const int fElec = 2201;
public const int fAttraction = 2206;
public const int fPromo = 2202;
public const int fMoral = 2203;
public const int fRation = 2207;
public const int fSafety = 2205;
public const int fMoral = 2203;
public const int bfLandmark5 = 3784;
public const int fFood = 2204;
public const int fConstruction = 2003;
public const int fAttraction = 2206;
public const int bfCoal = 3800;
public const int bfIce = 3804;
public const int fSafety = 2205;
public const int bfSilica = 3802;
public const int fConstruction = 2003;
public const int bfMushroom = 3801;
public const int bfChitin = 3805;
public const int bfGum = 3803;
public const int bfSilica = 3802;
public const int bfPlain = 3600;
public const int bfForest = 3601;
public const int bfUndersea = 3606;
public const int bfCave = 3500;
public const int actBuildInspect = 4006;
public const int bfFish = 3706;
public const int actBuildRecipe = 4005;
public const int bfIce = 3804;
public const int actBuildCollect = 4004;
public const int bfHunt = 3705;
public const int actBuildAnywhere = 4003;
public const int bfStart = 3900;
public const int actBuildTerrain = 4002;
public const int actBuildCut = 4000;
public const int actBuildMine = 4001;
public const int actBuildCut = 4000;
public const int actBuildTerrain = 4002;
public const int bfStart = 3900;
public const int bfCave = 3500;
public const int bfChitin = 3805;
public const int actBuildCollect = 4004;
public const int bfHunt = 3705;
public const int actBuildRecipe = 4005;
public const int bfGum = 3803;
public const int actBuildInspect = 4006;
public const int actBuildAnywhere = 4003;
public static readonly int[] IDS = new int[53]
{
3783, 3781, 2207, 3780, 3710, 3709, 3708, 3707, 3706, 3782,
2204, 2116, 2115, 2117, 2118, 2119, 2120, 2200, 2201, 2206,
2202, 2203, 2205, 3784, 2003, 3800, 3804, 3802, 3801, 3600,
3784, 3782, 3781, 3780, 3710, 3707, 3708, 3783, 3709, 2119,
2115, 2116, 2117, 2118, 2120, 2200, 2201, 2202, 2207, 2203,
2204, 2206, 3800, 2205, 2003, 3801, 3805, 3803, 3802, 3600,
3601, 3602, 3603, 3604, 3605, 3700, 3701, 3702, 3703, 3704,
3606, 3500, 4006, 4005, 4004, 4003, 4002, 4001, 4000, 3900,
3805, 3705, 3803
3606, 3706, 3804, 3705, 3900, 4000, 4001, 4002, 3500, 4004,
4005, 4006, 4003
};
}
public class Faction : EClassFEAT
public class FEAT
{
public const int featDEX = 1621;
public const int featEND = 1622;
public const int featPER = 1623;
public const int featSTR = 1620;
public const int featLER = 1624;
public const int featLuck = 1628;
public const int featSPD = 1629;
public const int featCHA = 1627;
public const int featWIL = 1626;
public const int featCHA = 1627;
public const int featMAG = 1625;
public const int featLuck = 1628;
public const int featLER = 1624;
public const int featSTR = 1620;
public const int featPER = 1623;
public const int featMAG = 1625;
public const int featEND = 1622;
public const int featHardy = 1630;
public const int featDEX = 1621;
public const int featSPD = 1629;
public const int featWhiteVixen = 1414;
public const int featMana = 1611;
public const int featEarthStrength = 1411;
public const int featCosmicHorror = 1233;
public const int featHeavyEater = 1234;
public const int featBoost = 1409;
public const int featBaby = 1232;
public const int featHeavyEater = 1234;
public const int featCosmicHorror = 1233;
public const int featLightEater = 1235;
public const int featGeneSlot = 1242;
public const int featLittleOne = 1229;
public const int featEternalYouth = 1243;
public const int featReboot = 1410;
public const int featSevenSense = 1245;
public const int featPegasus = 1246;
public const int featLibra = 1247;
public const int featBloodBond = 1249;
public const int featVampire = 1250;
public const int featGoodKarma = 1270;
public const int featBadKarma = 1271;
public const int featGod_element1 = 1300;
public const int featLittleOne = 1229;
public const int featCentaur = 1244;
public const int featDemigod = 1228;
public const int featGod_earth1 = 1305;
public const int featServant = 1227;
public const int featDemigod = 1228;
public const int featUnderground = 1226;
public const int featSnail = 1211;
public const int featGod_earth1 = 1305;
public const int featServant = 1227;
public const int featFairyResist = 1212;
public const int featGod_wind1 = 1310;
public const int featCentaur = 1244;
public const int featSevenSense = 1245;
public const int featGod_healing1 = 1320;
public const int featPaladin = 1407;
public const int featTourist = 1406;
public const int featPianist = 1405;
public const int featThief = 1401;
public const int featWarrior = 1400;
public const int featPaladin2 = 1408;
public const int featGod_strife1 = 1355;
public const int featWarrior = 1400;
public const int featGod_moonshadow1 = 1350;
public const int featGod_harvest1 = 1325;
public const int featPaladin = 1407;
public const int featPaladin2 = 1408;
public const int featGod_strife1 = 1355;
public static readonly int[] IDS = new int[133]
public static readonly int[] IDS = new int[134]
{
1621, 1622, 1623, 1624, 1629, 1626, 1627, 1628, 1620, 1625,
1630, 1414, 1611, 1610, 1422, 1421, 1420, 1419, 1418, 1417,
1620, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1630, 1621,
1629, 1414, 1611, 1610, 1422, 1421, 1420, 1419, 1418, 1417,
1416, 1415, 1631, 1413, 1612, 1632, 1648, 1634, 1412, 1662,
1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652,
1651, 1650, 1649, 1647, 1646, 1645, 1644, 1643, 1642, 1641,
1640, 1636, 1635, 1633, 1411, 1233, 1409, 1230, 1231, 1232,
1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243,
1410, 1245, 1246, 1247, 1248, 1249, 1270, 1271, 1272, 1273,
1290, 1300, 1229, 1228, 1227, 1226, 1200, 1201, 1202, 1203,
1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1305, 1212,
1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223,
1224, 1225, 1213, 1310, 1244, 1320, 1406, 1405, 1404, 1403,
1402, 1401, 1400, 1355, 1350, 1315, 1345, 1340, 1335, 1330,
1325, 1407, 1408
1640, 1636, 1635, 1633, 1411, 1234, 1409, 1230, 1231, 1232,
1233, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1229,
1243, 1410, 1246, 1247, 1248, 1249, 1250, 1270, 1271, 1272,
1273, 1290, 1300, 1244, 1305, 1228, 1226, 1200, 1201, 1202,
1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1227,
1212, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222,
1223, 1224, 1225, 1213, 1310, 1245, 1320, 1407, 1406, 1405,
1404, 1403, 1402, 1401, 1408, 1400, 1350, 1315, 1345, 1340,
1335, 1330, 1325, 1355
};
}
public class Feat : Elementpublic List<string> Apply(int a, ElementContainer owner, bool hint = false)
ModBase(958, a * 5, hide: false);
ModBase(956, a * 10, hide: false);
ModBase(950, a * -5, hide: false);
ModBase(960, a * -5, hide: false);
break;
case 1290:
ModBase(418, a * 100, hide: false);public List<string> Apply(int a, ElementContainer owner, bool hint = false)
case 1216:
ModBase(6020, a, hide: false);
break;
case 1250:
ModBase(950, a * -10, hide: false);
ModBase(951, a * 5, hide: false);
ModBase(961, a * 5, hide: false);
ModBase(8793, a, hide: false);
ModBase(6607, a, hide: false);
break;
case 1415:
ModBase(60, a * 15, hide: false);
ModBase(79, a * 5, hide: false);FOOD
public const int food_god = 758;
public const int justcooked = 757;
public const int food_CHA = 700;
public const int food_cat = 701;
public const int food_love = 703;
public const int food_poison = 702;
public const int food_bug = 704;
public const int gainWeight = 705;
public const int food_poison = 702;
public const int food_love = 703;
public const int kirimi = 707;
public const int food_undead = 709;
public const int justcooked = 757;
public const int food_blood = 710;
public const int loseWeight = 706;
public static readonly int[] IDS = new int[13]
public static readonly int[] IDS = new int[14]
{
764, 758, 700, 701, 703, 704, 705, 702, 707, 708,
709, 757, 706
764, 758, 757, 700, 701, 702, 704, 705, 703, 707,
708, 709, 710, 706
};
}FoodEffect
public static void Proc(Chara c, Thing food, bool consume = true)
if (flag2)
{
num5 *= 2f;
num2 *= 1.5f;
num2 *= 1.3f;
}
else
{public static void Proc(Chara c, Thing food, bool consume = true)
num5 = 0f;
num2 *= 0.5f;
}
if (c.HasElement(1250))
{
if (food.HasElement(710))
{
num2 *= 4f;
}
else
{
num3 /= 10;
}
}
if (c.HasElement(1200))
{
num2 *= 1f + (float)c.Evalue(1200) + 0.25f;
num2 *= 1f + (float)c.Evalue(1200) * 0.25f;
}
if (!c.IsPC)
{public static void Proc(Chara c, Thing food, bool consume = true)
{
break;
}
goto IL_0f19;
goto IL_0f4b;
case "love":
ActEffect.LoveMiracle(c, EClass.pc, value.Value * 10);
break;public static void Proc(Chara c, Thing food, bool consume = true)
{
food.trait.OnDrink(c);
}
goto IL_0f19;
IL_0f19:
goto IL_0f4b;
IL_0f4b:
if (!consume)
{
return;HotItemNoItem
public static bool _TrySetAct(ActPlan p)
EClass.player.RefreshCurrentHotItem();
ActionMode.Adv.planRight.Update(ActionMode.Adv.mouseTarget);
EClass.pc.renderer.Refresh();
HotItemHeld.disableTool = true;
if (!(EClass.pc.held.trait is TraitShackle))
{
HotItemHeld.disableTool = true;
}
}
}
return true;MUTATION
public class MUTATION
{
public const int mutationRegen = 1516;
public const int mutationDexN = 1515;
public const int mutationSkin = 1510;
public const int mutationDex = 1514;
public const int mutationDexN = 1515;
public const int mutationRegenN = 1517;
public const int mutationRegen = 1516;
public const int mutationEyeN = 1513;
public const int mutationSpeedN = 1519;
public const int mutationSpeed = 1518;
public const int etherPoisonHand = 1565;
public const int etherRain = 1558;
public const int mutationSpeed = 1518;
public const int etherHead = 1557;
public const int etherViolence = 1556;
public const int mutationRegenN = 1517;
public const int etherNeck = 1555;
public const int etherUgly = 1551;
public const int etherHead = 1557;
public const int etherViolence = 1556;
public const int mutationHairN = 1533;
public const int mutationSpeedN = 1519;
public const int etherGravity = 1550;
public const int mutationStrN = 1521;
public const int mutationBrainN = 1525;
public const int mutationCold = 1526;
public const int mutationStr = 1520;
public const int mutationColdN = 1527;
public const int mutationLightning = 1528;
public const int mutationLightningN = 1529;
public const int mutationHair = 1532;
public const int mutationColdN = 1527;
public const int mutationCold = 1526;
public static readonly int[] IDS = new int[40]
{
1516, 1510, 1511, 1512, 1514, 1515, 1517, 1513, 1519, 1565,
1564, 1563, 1562, 1561, 1560, 1559, 1558, 1518, 1556, 1555,
1554, 1553, 1552, 1551, 1557, 1533, 1550, 1521, 1522, 1523,
1524, 1525, 1526, 1520, 1528, 1529, 1530, 1531, 1532, 1527
1515, 1510, 1511, 1512, 1514, 1516, 1513, 1518, 1565, 1564,
1563, 1562, 1561, 1560, 1559, 1558, 1557, 1517, 1555, 1554,
1553, 1552, 1551, 1556, 1533, 1519, 1550, 1521, 1522, 1523,
1524, 1525, 1520, 1527, 1528, 1529, 1530, 1531, 1532, 1526
};
}
public class Mutation : FeatPOLICY
public class POLICY
{
public const int store_ripoff = 2816;
public const int store_premium = 2817;
public const int license_food = 2818;
public const int legendary_heirloom = 2821;
public const int license_stolen = 2824;
public const int legendary_exhibition = 2823;
public const int celeb = 2822;
public const int milk_fan = 2825;
public const int license_stolen = 2824;
public const int egg_fan = 2826;
public const int breed_season = 2827;
public const int license_slaver = 2828;
public const int platinum_ticket = 2815;
public const int store_ripoff = 2816;
public const int celeb = 2822;
public const int legendary_exhibition = 2823;
public const int mass_exhibition = 2814;
public const int platinum_ticket = 2815;
public const int food_for_people = 2502;
public const int faith_tax = 2501;
public const int bed_quality = 2812;
public const int suite_room = 2813;
public const int stop_growth = 2515;
public const int taxfree = 2514;
public const int vaccination = 2509;
public const int stop_growth = 2515;
public const int nocturnal_life = 2508;
public const int inquisition = 2507;
public const int human_right = 2506;
public const int legal_drug = 2505;
public const int wealth_tax = 2500;
public const int suite_room = 2813;
public const int inquisition = 2507;
public const int mass_exhibition = 2814;
public const int speed_growth = 2516;
public const int faith_tax = 2501;
public const int energy_conservation = 2700;
public const int trash_sort = 2701;
public const int food_for_people = 2502;
public const int trash_no = 2702;
public const int bed_quality = 2812;
public const int tourist_safety = 2811;
public const int home_discount = 2800;
public const int livestock_priv = 2715;
public const int trash_sort = 2701;
public const int energy_conservation = 2700;
public const int forcePanty = 2712;
public const int incomeTransfer = 2711;
public const int noMother = 2710;
public const int livestock_priv = 2715;
public const int forcePanty = 2712;
public const int noAnimal = 2709;
public const int noDM = 2708;
public const int weed_no = 2703;
public const int trash_no = 2702;
public const int noAnimal = 2709;
public const int noMother = 2710;
public static readonly int[] IDS = new int[51]
{
2816, 2817, 2818, 2819, 2820, 2821, 2824, 2823, 2825, 2826,
2827, 2828, 2815, 2822, 2814, 2502, 2812, 2514, 2513, 2512,
2511, 2510, 2509, 2515, 2508, 2506, 2505, 2504, 2503, 2500,
2813, 2507, 2516, 2501, 2701, 2811, 2810, 2800, 2715, 2700,
2711, 2710, 2712, 2708, 2707, 2706, 2705, 2704, 2703, 2702,
2709
2817, 2818, 2819, 2820, 2821, 2822, 2825, 2824, 2826, 2827,
2828, 2816, 2823, 2815, 2501, 2813, 2515, 2514, 2513, 2512,
2511, 2510, 2509, 2508, 2507, 2506, 2505, 2504, 2503, 2500,
2814, 2516, 2700, 2502, 2702, 2812, 2811, 2810, 2800, 2701,
2712, 2711, 2715, 2709, 2708, 2707, 2706, 2705, 2704, 2703,
2710
};
}
public class Policy : EClassPlayer
c.EQ_ID("shirt").c_IDTState = 0;
c.AddCard(ThingGen.CreateCurrency(1 + EClass.rnd(5)));
bool firstSpellbook = true;
switch (EClass.pc.job.id)
switch (c.job.id)
{
case "paladin":
c.AddCard(SetSpellbook(ThingGen.CreateSpellbook(8400), 2)); c.AddCard(ThingGen.Create("tool_talisman"));
break;
}
switch (EClass.pc.job.id)
switch (c.job.id)
{
case "wizard":
case "warmage": c.AddCard(ThingGen.Create("bandage").SetNum(6 + EClass.rnd(3)));
break;
}
if (c.race.id == "vampire")
{
c.AddCard(ThingGen.CreateRecipe("bloodpack"));
if (EClass.debug.enable)
{
c.AddCard(ThingGen.Create("mixer"));
c.AddCard(ThingGen.Create("bloodpack").SetNum(3));
}
}
Thing SetSpellbook(Thing t, int charge)
{
if (firstSpellbook)Point
}
}
public bool IsSunLit
{
get
{
if (EClass._map.IsIndoor || EClass.world.date.IsNight || cell.HasRoof)
{
return Map.sunMap.Contains(index);
}
return true;
}
}
public bool HasNonWallBlock
{
getRecipe
public bool IsValidIngredient(Thing t)
{
return true;
}
Debug.Log(t.Name + "/" + tag + "/" + t.material.tag);
if (!tag.IsEmpty() && !t.material.tag.Contains(tag))
{
return false;Religion
public bool IsValidArtifact(string id)
{
if (giftRank < 2)
{
return false;
}
return id switch
{
"gun_mani" => this == EClass.game.religions.Machine,public static Thing Reforge(string id, Point pos = null, bool first = true)
break;
}
}
if (EClass.pc.IsEyth && EClass.pc.HasElement(1228))
{
thing.c_idDeity = EClass.game.religions.Eyth.id;
}
EClass._zone.AddCard(thing, pos);
pos.PlayEffect("aura_heaven");
if (first)public void JoinFaith(Chara c, ConvertType type = ConvertType.Default)
EClass.screen.RefreshWeather();
}
}
EClass.pc.PurgeEythArtifact();
}
public void LeaveFaith(Chara c, Religion newFaith, ConvertType type)SKILL
public const int music = 241;
public const int weaponPolearm = 106;
public const int climbing = 242;
public const int weaponPolearm = 106;
public const int evasionPlus = 151;
public const int weaponGun = 105;
public const int PER = 73;
public const int DEX = 72;
public const int weaponStaff = 103;
public const int mana = 61;
public const int DV = 64;
public const int vigor = 62;
public const int PV = 65;
public const int weaponBow = 104;
public const int DEX = 72;
public const int fishing = 245;
public const int LER = 74;
public const int weaponAxe = 102;
public const int fishing = 245;
public const int PER = 73;
public const int gathering = 250;
public const int vigor = 62;
public const int DV = 64;
public const int blacksmith = 256;
public const int resHoly = 960;
public const int resMagic = 961;
public const int resCurse = 972;
public const int resMagic = 961;
public const int resEther = 962;
public const int resAcid = 963;{
134, 133, 132, 131, 130, 123, 108, 120, 111, 110,
109, 135, 107, 122, 150, 226, 152, 200, 207, 210,
220, 225, 227, 230, 235, 237, 240, 241, 106, 242,
151, 105, 73, 103, 50, 51, 55, 56, 57, 60,
61, 64, 65, 66, 67, 68, 70, 71, 104, 72,
220, 225, 227, 230, 235, 237, 240, 241, 242, 106,
151, 105, 72, 103, 50, 51, 55, 56, 57, 60,
61, 62, 65, 66, 67, 68, 70, 71, 104, 245,
74, 75, 76, 77, 78, 79, 80, 90, 91, 92,
93, 100, 101, 102, 245, 250, 62, 256, 916, 917,
93, 100, 101, 102, 73, 250, 64, 256, 916, 917,
918, 920, 921, 922, 923, 924, 925, 926, 950, 951,
952, 953, 915, 954, 956, 957, 958, 959, 960, 961,
972, 962, 963, 964, 965, 970, 971, 255, 955, 914,
952, 953, 915, 954, 956, 957, 958, 959, 960, 972,
961, 962, 963, 964, 965, 970, 971, 255, 955, 914,
919, 912, 257, 258, 259, 260, 261, 280, 281, 285,
286, 287, 913, 289, 290, 291, 292, 288, 300, 911,
910, 293, 312, 311, 310, 313, 306, 305, 304, 303,SLOT
public const int range = 41;
public const int ammo = 42;
public const int token = 43;
public const int ammo = 42;
public static readonly int[] IDS = new int[16]
{
44, 32, 39, 45, 34, 38, 37, 35, 40, 33,
31, 30, 36, 41, 42, 43
31, 30, 36, 41, 43, 42
};
}SPELL
public class SPELL
{
public const int puddle_Holy = 50909;
public const int bit_Sound = 51107;
public const int flare_Sound = 51207;
public const int ball_Nerve = 50108;
public const int sword_Mind = 51004;
public const int sword_Nerve = 51008;
public const int sword_Void = 51016;
public const int puddle_Nerve = 50908;
public const int bolt_Nerve = 50308;
public const int weapon_Nerve = 50808;
public const int hand_Nerve = 50408;
public const int miasma_Nerve = 50708;
public const int puddle_Mind = 50904;
public const int funnel_Nerve = 50608;
public const int arrow_Nerve = 50508;
public const int funnel_Nerve = 50608;
public const int miasma_Nerve = 50708;
public const int bit_Nerve = 51108;
public const int weapon_Nerve = 50808;
public const int hand_Nerve = 50408;
public const int puddle_Nerve = 50908;
public const int sword_Void = 51016;
public const int flare_Holy = 51209;
public const int bolt_Nerve = 50308;
public const int sword_Nerve = 51008;
public const int flare_Mind = 51204;
public const int sword_Sound = 51007;
public const int bit_Mind = 51104;
public const int flare_Nerve = 51208;
public const int ball_Holy = 50109;
public const int weapon_Mind = 50804;
public const int sword_Mind = 51004;
public const int bolt_Holy = 50309;
public const int miasma_Mind = 50704;
public const int hand_Holy = 50409;
public const int bit_Holy = 51109;
public const int puddle_Mind = 50904;
public const int arrow_Holy = 50509;
public const int weapon_Mind = 50804;
public const int funnel_Holy = 50609;
public const int miasma_Holy = 50709;
public const int weapon_Holy = 50809;
public const int puddle_Holy = 50909;
public const int sword_Holy = 51009;
public const int bit_Nerve = 51108;
public const int bit_Holy = 51109;
public const int puddle_Sound = 50907;
public const int flare_Holy = 51209;
public const int bit_Mind = 51104;
public const int ball_Nerve = 50108;
public const int miasma_Poison = 50705;
public const int flare_Sound = 51207;
public const int weapon_Poison = 50805;
public const int sword_Sound = 51007;
public const int miasma_Poison = 50705;
public const int puddle_Poison = 50905;
public const int bit_Poison = 51105;
public const int arrow_Poison = 50505;
public const int flare_Poison = 51205;
public const int ball_Nether = 50106;
public const int hand_Poison = 50405;
public const int funnel_Poison = 50605;
public const int bolt_Nether = 50306;
public const int hand_Nether = 50406;
public const int bolt_Poison = 50305;
public const int arrow_Nether = 50506;
public const int arrow_Poison = 50505;
public const int funnel_Nether = 50606;
public const int miasma_Nether = 50706;
public const int sword_Nether = 51006;
public const int hand_Poison = 50405;
public const int bit_Nether = 51106;
public const int flare_Nether = 51206;
public const int ball_Sound = 50107;
public const int ball_Chaos = 50110;
public const int bolt_Poison = 50305;
public const int bolt_Sound = 50307;
public const int ball_Poison = 50105;
public const int hand_Sound = 50407;
public const int ball_Chaos = 50110;
public const int arrow_Sound = 50507;
public const int funnel_Sound = 50607;
public const int miasma_Sound = 50707;
public const int flare_Mind = 51204;
public const int weapon_Sound = 50807;
public const int funnel_Poison = 50605;
public const int puddle_Sound = 50907;
public const int ball_Acid = 50113;
public const int ball_Poison = 50105;
public const int bit_Sound = 51107;
public const int weapon_Poison = 50805;
public const int flare_Ether = 51212;
public const int hand_Chaos = 50410;
public const int funnel_Impact = 50615;
public const int funnel_Mind = 50604;
public const int miasma_Mind = 50704;
public const int puddle_Void = 50916;
public const int bolt_Acid = 50313;
public const int flare_Ether = 51212;
public const int ball_Acid = 50113;
public const int bit_Ether = 51112;
public const int bit_Magic = 51111;
public const int arrow_Mind = 50504;
public const int funnel_Mind = 50604;
public const int SpIncognito = 8780;
public const int bolt_Mind = 50304;
public const int hand_Mind = 50404;
public const int SpWisdom = 8503;
public const int SpIdentify = 8230;
public const int hand_Mind = 50404;
public const int arrow_Mind = 50504;
public const int SpTransmuteBat = 8793;
public const int SpDarkness = 8800;
public const int SpWeb = 8801;
public const int SpSummon = 9000;
public const int funnel_Lightning = 50602;
public const int arrow_Lightning = 50502;
public const int bolt_Cold = 50301;
public const int ball_Cold = 50101;
public const int miasma_Lightning = 50702;
public const int funnel_Lightning = 50602;
public const int ball_Cold = 50101;
public const int flare_Fire = 51200;
public const int weapon_Lightning = 50802;
public const int miasma_Lightning = 50702;
public const int sword_Lightning = 51002;
public const int puddle_Lightning = 50902;
public const int bolt_Mind = 50304;
public const int ball_Mind = 50104;
public const int bit_Lightning = 51102;
public const int sword_Lightning = 51002;
public const int puddle_Lightning = 50902;
public const int weapon_Lightning = 50802;
public const int SpWeb = 8801;
public const int SpDarkness = 8800;
public const int flare_Fire = 51200;
public const int bit_Fire = 51100;
public const int sword_Fire = 51000;
public const int puddle_Fire = 50900;
public const int SpSummonDragon = 9054;
public const int SpSummonMachine = 9053;
public const int SpSummonUndeadSister = 9001;
public const int SpSummon = 9000;
public const int SpMeteor = 9150;
public const int SpSummonDragon = 9054;
public const int bit_Fire = 51100;
public const int sword_Fire = 51000;
public const int SpEarthquake = 9151;
public const int SpMeteor = 9150;
public const int SpMoonArrow = 9156;
public const int SpMoonSpear = 9155;
public const int puddle_Fire = 50900;
public const int weapon_Fire = 50800;
public const int SpExterminate = 9160;
public const int SpMoonArrow = 9156;
public const int SpEarthquake = 9151;
public const int SpMoonSpear = 9155;
public const int flare_Void = 51216;
public static readonly int[] IDS = new int[290]
public static readonly int[] IDS = new int[289]
{
50909, 51107, 51207, 50108, 51004, 51016, 50308, 50408, 50904, 50508,
50608, 50708, 50808, 50908, 51209, 51008, 51007, 51208, 50109, 50804,
50309, 50704, 50409, 51109, 50509, 50609, 50709, 50809, 51009, 51108,
50907, 51104, 50705, 50805, 50905, 51005, 51105, 50505, 51205, 50106,
50405, 50306, 50406, 50305, 50506, 50606, 50706, 50806, 50906, 51006,
51106, 51206, 50107, 50110, 50307, 50105, 50407, 50507, 50607, 50707,
51204, 50807, 50605, 50113, 50410, 50115, 51214, 51114, 51014, 50914,
50814, 50315, 50714, 50514, 50414, 50314, 50114, 51213, 51113, 50614,
50415, 50515, 50615, 50604, 50916, 50816, 50716, 50616, 50516, 50416,
50316, 50116, 51215, 51115, 51015, 50915, 50815, 50715, 51013, 50913,
50813, 50713, 50811, 50711, 50611, 50511, 50411, 50311, 50111, 51210,
51110, 51010, 50910, 50810, 50710, 50610, 50510, 50911, 50310, 51011,
51211, 50613, 50513, 50413, 50313, 51212, 51112, 51012, 50912, 50812,
50712, 50612, 50512, 50412, 50312, 50112, 51111, 50504, 8780, 50304,
8503, 8502, 8501, 8500, 8491, 8490, 8480, 8471, 8470, 8450,
8430, 8406, 8405, 8404, 8403, 8504, 8402, 8506, 8510, 8791,
8790, 8776, 8775, 8770, 8710, 8708, 8707, 8706, 8705, 8704,
8702, 8700, 8555, 8550, 8507, 8792, 8401, 8390, 8202, 8201,
8200, 7800, 7010, 7009, 7008, 7007, 7006, 7005, 7004, 7003,
7002, 7001, 51116, 8220, 8400, 8221, 8232, 8380, 8300, 8288,
8286, 8285, 8284, 8281, 8280, 8260, 8256, 8255, 8251, 8250,
8241, 8240, 8230, 50404, 8793, 8801, 50502, 50402, 50302, 50102,
51008, 50908, 50808, 50708, 50608, 50508, 51108, 50408, 51016, 50308,
51204, 51104, 51208, 50109, 51004, 50309, 50409, 50904, 50509, 50804,
50609, 50709, 50809, 50909, 51009, 51109, 51209, 50108, 51207, 51007,
50705, 50905, 51005, 51105, 51205, 50106, 50605, 50306, 50406, 50506,
50505, 50606, 50706, 50806, 50906, 51006, 50405, 51106, 51206, 50107,
50305, 50307, 50407, 50110, 50507, 50607, 50707, 50807, 50907, 50105,
51107, 50805, 51212, 50410, 50115, 51214, 51114, 51014, 50914, 50814,
50315, 50714, 50514, 50414, 50314, 50114, 51213, 51113, 50614, 50415,
50515, 50615, 50704, 50916, 50816, 50716, 50616, 50516, 50416, 50316,
50116, 51215, 51115, 51015, 50915, 50815, 50715, 51013, 50913, 50813,
50713, 50811, 50711, 50611, 50511, 50411, 50311, 50111, 51210, 51110,
51010, 50910, 50810, 50710, 50610, 50510, 50911, 50310, 51011, 51211,
50613, 50513, 50413, 50313, 50113, 51112, 51012, 50912, 50812, 50712,
50612, 50512, 50412, 50312, 50112, 51111, 50604, 8780, 50404, 8503,
8502, 8501, 8500, 8491, 8490, 8480, 8471, 8470, 8450, 8430,
8406, 8405, 8404, 8403, 8504, 8402, 8506, 8510, 8791, 8790,
8776, 8775, 8770, 8710, 8708, 8707, 8706, 8705, 8704, 8702,
8700, 8555, 8550, 8507, 8792, 8401, 8390, 8202, 8201, 8200,
7800, 7010, 7009, 7008, 7007, 7006, 7005, 7004, 7003, 7002,
7001, 51116, 8220, 8400, 8221, 8232, 8380, 8300, 8288, 8286,
8285, 8284, 8281, 8280, 8260, 8256, 8255, 8251, 8250, 8241,
8240, 8230, 50504, 8800, 9000, 50602, 50502, 50402, 50302, 50102,
51201, 51101, 51001, 50901, 50801, 50701, 50601, 50501, 50401, 50301,
50101, 50602, 51200, 50702, 50902, 50104, 51203, 51103, 51003, 50903,
50803, 50703, 50603, 50503, 50403, 50303, 50103, 51202, 51102, 51002,
50802, 8800, 51100, 50900, 9053, 9052, 9051, 9050, 9010, 9009,
9008, 9007, 9006, 9005, 9004, 9003, 9002, 9001, 9000, 9054,
51000, 9150, 9155, 50800, 50700, 50600, 50500, 50400, 50300, 50100,
9503, 9502, 9501, 9500, 9210, 9200, 9160, 9156, 9151, 51216
50702, 50101, 50802, 51002, 50304, 50104, 51203, 51103, 51003, 50903,
50803, 50703, 50603, 50503, 50403, 50303, 50103, 51202, 51102, 50902,
8801, 51200, 51000, 9054, 9053, 9052, 9051, 9050, 9010, 9009,
9008, 9007, 9006, 9005, 9004, 9003, 9002, 9001, 9150, 51100,
9151, 9156, 50900, 50800, 50700, 50600, 50500, 50400, 50300, 50100,
9503, 9502, 9501, 9500, 9210, 9200, 9160, 9155, 51216
};
}
public class Spell : AbilitySerializedCards
public int[] ints = new int[30];
[JsonProperty]
public string[] strs = new string[10];
public string[] strs = new string[20];
[JsonProperty]
public Dictionary<int, object> obj; }
}
public int idtState
{
get
{
return ints[23];
}
set
{
ints[23] = value;
}
}
public string id
{
get }
}
public string idRefName
{
get
{
return strs[10];
}
set
{
strs[10] = value;
}
}
public string idTeleport
{
get
{
return strs[11];
}
set
{
strs[11] = value;
}
}
public bool isDead
{
get isEmpty = (c.things.Count == 0 && c.c_lockLv == 0),
encLv = c.encLV,
cText = c.c_refText,
cNote = c.c_note
cNote = c.c_note,
idtState = c.c_IDTState,
idRefName = c.c_idRefName,
idTeleport = c.GetStr(31)
};
if (c.c_idBacker != 0)
{public void Restore(Map map, Map orgMap, bool addToZone, PartialMap partial = nu
{
card2.SetEncLv(card4.encLv);
}
if (card4.strs.Length > 10)
{
if (!card4.idRefName.IsEmpty())
{
card2.c_idRefName = card4.idRefName;
}
if (!card4.idTeleport.IsEmpty())
{
card2.SetStr(31, card4.idTeleport);
}
}
card2.c_IDTState = card4.idtState;
}
if (card2.isChara)
{SourceThing
public bool ignoreAltFix;
public bool animeNoSync;
[NonSerialized]
public string name_L;public override void SetTiles()
_altTiles[i] = altTiles[i] / 100 * (int)renderData.pass.pmesh.tiling.x + altTiles[i] % 100 + num;
}
}
animeNoSync = tag.Contains("animeNoSync");
}
public override string GetName(SourceMaterial.Row mat, int sum)Thing
public override void SetRenderParam(RenderParam p)
}
break;
default:
{
if (source._altTiles.Length != 0 && trait.UseAltTiles)
{
p.tile = source._altTiles[base.dir % source._altTiles.Length] * ((!flipX) ? 1 : (-1));public override void SetRenderParam(RenderParam p)
{
p.tile = sourceCard._tiles[base.dir % sourceCard._tiles.Length] * ((!flipX) ? 1 : (-1));
}
float time = Time.realtimeSinceStartup;
if (source.animeNoSync)
{
Rand.UseSeed(base.uid, delegate
{
time += EClass.rnd(1000);
});
}
if (source.anime.Length == 0 || !trait.IsAnimeOn)
{
break;
}
if (source.anime.Length > 2)
{
float num = Time.realtimeSinceStartup * 1000f / (float)source.anime[1] % (float)source.anime[2];
float num = time * 1000f / (float)source.anime[1] % (float)source.anime[2];
if ((int)num == source.anime[0] - 1 && source.anime.Length > 3)
{
PlaySound("anime_sound" + source.anime[3]);public override void SetRenderParam(RenderParam p)
}
else
{
float num2 = Time.realtimeSinceStartup * 1000f / (float)source.anime[1] % (float)source.anime[0];
float num2 = time * 1000f / (float)source.anime[1] % (float)source.anime[0];
p.tile += num2 * (float)((!(p.tile < 0f)) ? 1 : (-1));
}
break;
}
}
if (trait.IdSkin != 0 && sourceCard.skins.Length != 0)
{
int num6 = sourceCard.skins.TryGet(trait.IdSkin - 1);TraitAltar
public class TraitAltar : Trait
public bool IsEyth => idDeity == "eyth";
public override void OnSetOwner()
{
if (idDeity == "void")
{
owner.c_idDeity = "eyth";
}
}
public override void OnCreate(int lv)
{
SetDeity(GetParam(1) ?? EClass.game.religions.GetRandomReligion().id);public override void TrySetAct(ActPlan p)
public override bool CanOffer(Card c)
{
if (c != null && c.HasTag(CTAG.godArtifact) && (c.c_idDeity == Deity.id || (EClass.pc.IsEyth && EClass.pc.HasElement(1228) && Deity == EClass.game.religions.Eyth)))
if (c != null && c.HasTag(CTAG.godArtifact))
{
return true;
if (EClass.pc.IsEyth && EClass.pc.HasElement(1228))
{
if (IsEyth || Deity.IsValidArtifact(c.id))
{
return true;
}
}
else if (c.c_idDeity == Deity.id)
{
return true;
}
}
if (base.CanOffer(c) && (EClass.pc.faith.GetOfferingValue(c as Thing) > 0 || c.id == "water") && !c.isCopy)
{public void OnOffer(Chara c, Thing t)
{
Msg.Say("nothingHappens");
}
else if (IsEyth)
else if (IsEyth && !EClass.pc.HasElement(1228))
{
if (EClass.pc.IsEyth)
{public void OnOffer(Chara c, Thing t)
_ = t.encLV;
t.Destroy();
Thing thing = Religion.Reforge(t.id);
if (EClass.pc.IsEyth && EClass.pc.HasElement(1228) && IsEyth)
{
thing.c_idDeity = EClass.game.religions.Eyth.id;
}
thing.SetEncLv(t.encLV);
thing.SetBlessedState(t.blessedState);
if (t.IsIdentified)public void OnOffer(Chara c, Thing t)
Msg.Say("nothingHappens");
return;
}
if (Deity != EClass.pc.faith)
if (Deity.id != EClass.pc.faith.id)
{
bool flag = EClass.rnd(EClass.pc.faith.GetOfferingValue(t, t.Num)) > EClass.rnd(200);
if (GetParam(1) != null || EClass.pc.IsEyth)TraitMapBoard
public override void TrySetAct(ActPlan p)
}
p.TrySetAct("actChangeHomeIcon", delegate
{
UIContextMenu uIContextMenu4 = EClass.ui.CreateContextMenuInteraction();
GridLayoutGroup parent = uIContextMenu4.AddGridLayout();
UIContextMenu uIContextMenu5 = EClass.ui.CreateContextMenuInteraction();
GridLayoutGroup parent = uIContextMenu5.AddGridLayout();
HashSet<int> hashSet = new HashSet<int>();
foreach (Spatial value in EClass.game.spatials.map.Values)
{public override void TrySetAct(ActPlan p)
EClass.scene.elomap.SetZone(EClass._zone.x, EClass._zone.y, EClass._zone, updateMesh: true);
});
}
uIContextMenu4.Show();
uIContextMenu5.Show();
return false;
}, owner);
p.TrySetAct("actChangeBlockHeight", delegate
{
UIContextMenu uIContextMenu3 = EClass.ui.CreateContextMenuInteraction();
uIContextMenu3.AddSlider("adjustment", (float a) => a.ToString() ?? "", EClass._map.config.blockHeight * 10f, delegate(float b)
UIContextMenu uIContextMenu4 = EClass.ui.CreateContextMenuInteraction();
uIContextMenu4.AddSlider("adjustment", (float a) => a.ToString() ?? "", EClass._map.config.blockHeight * 10f, delegate(float b)
{
EClass._map.config.blockHeight = b * 0.1f;
}, 0f, 40f, isInt: true, hideOther: false);
uIContextMenu3.Show();
uIContextMenu4.Show();
return false;
}, owner);
if (EClass._zone.IsSkyLevel)
{
p.TrySetAct("actChangeSkyBlockHeight", delegate
{
UIContextMenu uIContextMenu2 = EClass.ui.CreateContextMenuInteraction();
uIContextMenu2.AddSlider("adjustment", (float a) => a.ToString() ?? "", EClass._map.config.skyBlockHeight, delegate(float b)
UIContextMenu uIContextMenu3 = EClass.ui.CreateContextMenuInteraction();
uIContextMenu3.AddSlider("adjustment", (float a) => a.ToString() ?? "", EClass._map.config.skyBlockHeight, delegate(float b)
{
EClass._map.config.skyBlockHeight = (int)b;
}, 1f, 20f, isInt: true, hideOther: false);
uIContextMenu2.Show();
uIContextMenu3.Show();
return false;
}, owner);
}public override void TrySetAct(ActPlan p)
}, owner);
p.TrySetAct("actChangeShadowStrength", delegate
{
UIContextMenu uIContextMenu = EClass.ui.CreateContextMenuInteraction();
uIContextMenu.AddSlider("adjustment", (float a) => a + "%", EClass._map.config.shadowStrength * 100f, delegate(float b)
UIContextMenu uIContextMenu2 = EClass.ui.CreateContextMenuInteraction();
uIContextMenu2.AddSlider("adjustment", (float a) => a + "%", EClass._map.config.shadowStrength * 100f, delegate(float b)
{
EClass._map.config.shadowStrength = b * 0.01f;
EClass.screen.RefreshAll();
}, 0f, 400f, isInt: true, hideOther: false);
uIContextMenu2.Show();
return false;
}, owner);
p.TrySetAct("actChangeHeightShadowStrength", delegate
{
UIContextMenu uIContextMenu = EClass.ui.CreateContextMenuInteraction();
uIContextMenu.AddSlider("adjustment", (float a) => a + "%", EClass._map.config.heightLightMod * 1000f, delegate(float b)
{
EClass._map.config.heightLightMod = b * 0.001f;
}, 0f, 100f, isInt: true, hideOther: false);
uIContextMenu.Show();
return false;
}, owner);WidgetManager
public void Reset(bool toggleTheme)
{
if (WidgetMainText.Instance.box.isShowingLog)
{
WidgetMainText.Instance._ToggleLog();
}
MsgBox msgBox = null;
if ((bool)WidgetMainText.Instance)
{
(WidgetMainText.boxBk = WidgetMainText.Instance.box).transform.SetParent(base.transform.parent, worldPositionStays: false);
if (WidgetMainText.Instance.box.isShowingLog)
{
WidgetMainText.Instance._ToggleLog();
}
msgBox = (WidgetMainText.boxBk = WidgetMainText.Instance.box);
msgBox.transform.SetParent(base.transform.parent, worldPositionStays: false);
}
KillWidgets();
if (toggleTheme)public void Reset(bool toggleTheme)
OnGameInstantiated();
OnActivateZone();
OnChangeActionMode();
if (!WidgetMainText.Instance && (bool)msgBox)
{
UnityEngine.Object.Destroy(msgBox.gameObject);
}
}
public void DialogSave(Action onSave = null)