EA 23.306 Nightly โ
May 14, 2026
74 files modified. 5 new files created.
Important Changes โ
Possible breaking changes. Click the filename to view the chunk.
Chara (1) โ
private void GoHostile(Card _tg)
public void GoHostile(Card _tg) ABILITY โ
public class ABILITY
{
public const int ActMoneyThrow = 5057;
public const int ActDreamBug = 6020;
public const int ActParasite = 6019;
public const int ActRide = 6018;
public const int AI_SelfHarm = 6015;
public const int AI_PassTime = 6013;
public const int ActQuickCraft = 6012;
public const int AI_Steal = 6011;
public const int ActMoneyDump = 5058;
public const int AI_Meditate = 6003;
public const int AI_PlayMusic = 6001;
public const int ActMoneyDump = 5058;
public const int ActMoneyThrow = 5057;
public const int ActMoneySlap = 5056;
public const int ActBash = 5052;
public const int ActPray = 6050;
public const int ActZap = 5051;
public const int ActEscape = 6400;
public const int AI_Sleep = 5050;
public const int ActSuicide = 6410;
public const int AI_OpenLock = 5049;
public const int ActDuplicate = 6420;
public const int ActItem = 5048;
public const int ActGazeInsane = 6621;
public const int ActPick = 5047;
public const int ActGazeDim = 6620;
public const int ActInstall = 5046;
public const int ActTouchDrown = 6613;
public const int AI_Drink = 5045;
public const int ActTouchSleep = 6612;
public const int ActChat = 5044;
public const int ActFear = 6611;
public const int AI_TendAnimal = 5043;
public const int ActWeaken = 6610;
public const int AI_Steal = 6011;
public const int ActSlime = 6608;
public const int ActKick = 5042;
public const int ActZap = 5051;
public const int ActQuickCraft = 6012;
public const int AI_SelfHarm = 6015;
public const int ActSlime = 6608;
public const int ActBurnMana = 6606;
public const int ActCrySad = 6605;
public const int ActCryRage = 6604;
public const int ActNTR = 6603;
public const int ActRush = 6450;
public const int ActCrySad = 6605;
public const int ActDuplicate = 6420;
public const int ActGazeMutation = 6622;
public const int ActSuicide = 6410;
public const int AI_Sleep = 5050;
public const int ActEscape = 6400;
public const int ActItem = 5048;
public const int ActPray = 6050;
public const int Ranged = 5003;
public const int ActDreamBug = 6020;
public const int Sleep = 5004;
public const int ActParasite = 6019;
public const int Wait = 5005;
public const int ActRide = 6018;
public const int Shoot = 5006;
public const int AI_PassTime = 6013;
public const int Use = 5007;
public const int AI_Read = 5041;
public const int General = 5008;
public const int ActRanged = 5040;
public const int TaskMine = 5009;
public const int AI_Fish = 5039;
public const int TaskDig = 5010;
public const int TaskAttack = 5015;
public const int TaskCut = 5011;
public const int TaskTame = 5016;
public const int AI_Goto = 5012;
public const int TaskTalk = 5017;
public const int ActAttack = 5013;
public const int TaskPick = 5018;
public const int TaskPlow = 5014;
public const int TaskReadBoard = 5019;
public const int TaskAttack = 5015;
public const int TaskFarm = 5020;
public const int TaskTame = 5016;
public const int TaskTrain = 5021;
public const int TaskTalk = 5017;
public const int TaskSleepOnBed = 5022;
public const int Melee = 5002;
public const int TaskGoOut = 5023;
public const int ActMelee = 5001;
public const int AI_Eat = 5024;
public const int ActWait = 5000;
public const int AI_Grab = 5025;
public const int AI_Deconstruct = 5031;
public const int AI_Haul = 5026;
public const int ActPick = 5047;
public const int GoalSleep = 5027;
public const int ActInstall = 5046;
public const int ActReleaseHeld = 5028;
public const int AI_Drink = 5045;
public const int AI_Offer = 5029;
public const int ActChat = 5044;
public const int AI_ReleaseHeld = 5030;
public const int AI_TendAnimal = 5043;
public const int AI_Deconstruct = 5031;
public const int ActKick = 5042;
public const int TaskPlow = 5014;
public const int AI_Read = 5041;
public const int ActAttack = 5013;
public const int AI_OpenLock = 5049;
public const int AI_Goto = 5012;
public const int ActRanged = 5040;
public const int TaskCut = 5011;
public const int ActThrow = 5038;
public const int AI_Equip = 5032;
public const int AI_Fish = 5039;
public const int ActWait = 5000;
public const int ActGazeMana = 6623;
public const int ActWeaken = 6610;
public const int ActMelee = 5001;
public const int Ranged = 5003;
public const int Sleep = 5004;
public const int Wait = 5005;
public const int Shoot = 5006;
public const int Use = 5007;
public const int General = 5008;
public const int TaskMine = 5009;
public const int TaskDig = 5010;
public const int Melee = 5002;
public const int ActFear = 6611;
public const int ActBloodsuck = 6607;
public const int ActCatHuffing = 6627;
public const int ActTouchDrown = 6613;
public const int breathe_Magic = 50211;
public const int SongValor = 6752;
public const int breathe_Chaos = 50210;
public const int SongEnd = 6753;
public const int breathe_Holy = 50209;
public const int ActManaAbsorb = 6900;
public const int ActDrainBlood = 6626;
public const int ActJureHeal = 6901;
public const int breathe_Sound = 50207;
public const int ActLulwyTrick = 6902;
public const int breathe_Nether = 50206;
public const int ActKizuamiTrick = 6903;
public const int breathe_Ether = 50212;
public const int ActHeadpat = 6904;
public const int breathe_Poison = 50205;
public const int breathe_ = 7000;
public const int breathe_Darkness = 50203;
public const int SpTransmuteBat = 8793;
public const int breathe_Lightning = 50202;
public const int SpTransmuteMimic = 8794;
public const int breathe_Cold = 50201;
public const int ActTouchSleep = 6612;
public const int SpTransmuteHuman = 8796;
public const int breathe_Fire = 50200;
public const int SpTransmuteHuman = 8796;
public const int breathe_Cold = 50201;
public const int SpTransmuteShadow = 8795;
public const int breathe_Lightning = 50202;
public const int breathe_Darkness = 50203;
public const int breathe_Mind = 50204;
public const int SpTransmuteMimic = 8794;
public const int breathe_Poison = 50205;
public const int breathe_Acid = 50213;
public const int breathe_Nether = 50206;
public const int breathe_Impact = 50215;
public const int breathe_Sound = 50207;
public const int AI_ReleaseHeld = 5030;
public const int breathe_Nerve = 50208;
public const int AI_Offer = 5029;
public const int breathe_Holy = 50209;
public const int ActReleaseHeld = 5028;
public const int breathe_Chaos = 50210;
public const int GoalSleep = 5027;
public const int breathe_Magic = 50211;
public const int AI_Haul = 5026;
public const int breathe_Ether = 50212;
public const int AI_Grab = 5025;
public const int breathe_Acid = 50213;
public const int breathe_Cut = 50214;
public const int AI_Eat = 5024;
public const int breathe_Impact = 50215;
public const int TaskSleepOnBed = 5022;
public const int breathe_Void = 50216;
public const int TaskTrain = 5021;
public const int SongTulip = 6751;
public const int TaskFarm = 5020;
public const int SongSleep = 6750;
public const int TaskReadBoard = 5019;
public const int SpTransmuteShadow = 8795;
public const int TaskPick = 5018;
public const int StMama = 6701;
public const int breathe_Void = 50216;
public const int ActGazeDim = 6620;
public const int TaskGoOut = 5023;
public const int StManaCost = 6720;
public const int SpTransmuteBat = 8793;
public const int ActGazeInsane = 6621;
public const int breathe_Nerve = 50208;
public const int ActGazeMutation = 6622;
public const int ActHeadpat = 6904;
public const int ActGazeMana = 6623;
public const int ActDrainBlood = 6626;
public const int ActCatHuffing = 6627;
public const int ActKiss = 6628;
public const int ActDeepKiss = 6629;
public const int ActSteal = 6640;
public const int ActStealFood = 6641;
public const int ActStealMoney = 6642;
public const int ActNeckHunt = 6650;
public const int ActDropMine = 6660;
public const int ActStealFood = 6641;
public const int ActThrowPotion = 6661;
public const int breathe_ = 7000;
public const int ActSwarm = 6662;
public const int ActKiss = 6628;
public const int ActMultiHit = 6663;
public const int ActBladeStorm = 6664;
public const int ActWhirlwind = 6666;
public const int ActMultiHit = 6663;
public const int ActSummonSpecial = 6800;
public const int ActKizuamiTrick = 6903;
public const int ActLulwyTrick = 6902;
public const int ActJureHeal = 6901;
public const int ActManaAbsorb = 6900;
public const int SongEnd = 6753;
public const int SongValor = 6752;
public const int SongTulip = 6751;
public const int ActMissileBarrage = 6667;
public const int StManaCost = 6720;
public const int ActDropMine = 6660;
public const int SongSleep = 6750;
public const int ActSummonSpecial = 6800;
public const int StTaunt = 6700;
public const int ActWombDark = 6801;
public const int ActDeathSentense = 6802;
public const int ActWombDark = 6801;
public const int StTaunt = 6700;
public static readonly int[] IDS = new int[145]
public static readonly int[] IDS = new int[146]
{
5057, 6020, 6019, 6018, 6015, 6013, 6012, 6011, 6003, 6001,
5058, 5056, 5055, 5054, 5053, 5052, 6050, 6400, 6410, 6420,
6621, 6620, 6613, 6612, 6611, 6610, 6608, 5051, 6606, 6604,
6603, 6602, 6601, 6600, 6500, 6450, 6605, 6622, 5050, 5048,
5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012,
5013, 5014, 5015, 5016, 5017, 5002, 5001, 5000, 5031, 5047,
5046, 5045, 5044, 5043, 5042, 5041, 5049, 5040, 5038, 5037,
5036, 5035, 5034, 5033, 5032, 5039, 6623, 6607, 6627, 50211,
50210, 50209, 6626, 50207, 50206, 50212, 50205, 50203, 50202, 50201,
50200, 8796, 8795, 50204, 8794, 50213, 50215, 5030, 5029, 5028,
5027, 5026, 5025, 50214, 5024, 5022, 5021, 5020, 5019, 5018,
50216, 5023, 8793, 50208, 6904, 6629, 6630, 6631, 6640, 6641,
6642, 6650, 6660, 6661, 7000, 6662, 6628, 6664, 6665, 6666,
6663, 6800, 6903, 6902, 6901, 6900, 6753, 6752, 6751, 6667,
6720, 6750, 6700, 6802, 6801
5058, 6003, 6001, 5057, 5056, 5055, 5054, 5053, 5052, 5051,
5050, 5049, 5048, 5047, 5046, 5045, 5044, 5043, 6011, 5042,
6012, 6015, 6608, 6606, 6605, 6604, 6603, 6602, 6601, 6600,
6500, 6450, 6420, 6410, 6400, 6050, 6020, 6019, 6018, 6013,
5041, 5040, 5039, 5015, 5016, 5017, 5018, 5019, 5020, 5021,
5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031,
5014, 5013, 5012, 5011, 5038, 5037, 5036, 5035, 5034, 5033,
5032, 5000, 6610, 5001, 5003, 5004, 5005, 5006, 5007, 5008,
5009, 5010, 5002, 6611, 6607, 6613, 6752, 6753, 6900, 6901,
6902, 6903, 6904, 7000, 8793, 8794, 6612, 8796, 50200, 50201,
50202, 50203, 50204, 50205, 50206, 50207, 50208, 50209, 50210, 50211,
50212, 50213, 50214, 50215, 50216, 6751, 6750, 8795, 6701, 6620,
6720, 6621, 6622, 6623, 6626, 6627, 6628, 6629, 6630, 6631,
6640, 6642, 6650, 6641, 6661, 6662, 6663, 6664, 6665, 6666,
6667, 6660, 6800, 6801, 6802, 6700
};
}
public class Ability : ActAI_Fuck โ
public override IEnumerable<Status> Run()
{
num = 50;
}
else if (tc.affinity.CurrentStage < Affinity.Stage.Intimate && EClass.rnd(6 * num / 100) == 0)
else if (tc.affinity.CurrentStage < Affinity.Stage.Respected && EClass.rnd((tc.IsPCFaction ? 30 : 10) * 100 / num) == 0)
{
tc.AddCondition<ConFear>(60);
}AM_BaseGameMode โ
public override void OnUpdateInput()
if (EInput.leftMouse.down && EClass.ui.isPointerOverUI)
{
EInput.leftMouse.Consume();
return;
}
switch (EInput.action)
else
{
case EAction.Cancel:
if (!WidgetSearch.Instance)
if (!EClass.core.IsGameStarted)
{
HotItemContext.Show("system", EInput.uiMousePosition);
return;
}
switch (EInput.action)
{
case EAction.Cancel:
if (!WidgetSearch.Instance)
{
HotItemContext.Show("system", EInput.uiMousePosition);
}
break;
case EAction.Help:
LayerHelp.Toggle("general", "1");
break;
case EAction.Log:
WidgetMainText.ToggleLog();
break;
}
if (EClass.pc.currentZone.IsActiveZone)
{
_OnUpdateInput();
}
break;
case EAction.Help:
LayerHelp.Toggle("general", "1");
break;
case EAction.Log:
WidgetMainText.ToggleLog();
break;
}
if (EClass.pc.currentZone.IsActiveZone)
{
_OnUpdateInput();
}
}BaseStance โ
public class BaseStance : Condition
{
public override bool CanManualRemove => true;
public override bool HasDuration => false;
public override int GetPhase()
{
return 0;BaseTileMap โ
protected SourceMaterial.Row matBridge;
protected SourceMaterial.Row matDeco;
protected float blockLight;
protected float floorLight;
protected SourceFloor.Row sourceBridge;
protected SourceDeco.Row sourceDeco;
protected Room currentRoom;
protected Room lastRoom;public virtual void DrawTile()
this.room = this.cell.room;
roof = this.cell.HasRoof;
matBlock = this.cell.matBlock;
matDeco = this.cell.matDeco;
sourceBlock = this.cell.sourceBlock;
sourceDeco = this.cell.sourceDeco;
bool flag = this.cell.isFloating;
snowed = isSnowCovered && !roof && !this.cell.isClearSnow && !this.cell.isDeck && !flag;
_shadowStrength = (snowed ? (shadowStrength * 0.4f) : shadowStrength);public virtual void DrawTile()
bool flag4 = this.cell.isSurrounded && innerMode != 0 && sourceBlock.tileType.IsFullBlock;
if (!(!isSeen || flag4))
{
goto IL_169b;
goto IL_16bd;
}
bool isRoomEdge = this.cell.IsRoomEdge;
orgY = param.y;public virtual void DrawTile()
{
if (isRoomEdge)
{
goto IL_169b;
goto IL_16bd;
}
if (detail == null || !EMono.pc.hasTelepathy)
{public virtual void DrawTile()
fogged = true;
}
}
goto IL_7b6a;
IL_169b:
goto IL_7eb8;
IL_7327:
int num3;
if (!showRoof || !roof || this.cell.room == null || this.cell.Front.room == null || this.cell.Right.room == null)
{
param.tile = num3;
rendererFov.Draw(param);
}
goto IL_7387;
IL_7387:
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 num4 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.anime[1] % (float)sourceEffect2.anime[2];
if (!(num4 >= (float)sourceEffect2.anime[0]))
{
param.tile += num4;
}
}
else
{
float num5 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.anime[1] % (float)sourceEffect2.anime[0];
param.tile += num5;
}
}
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);
}
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_7eb8;
IL_16bd:
if (this.cell.isSlopeEdge)
{
float num3 = (float)height * _heightMod.y;
float num6 = (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 < num3 / heightBlockSize; j++)
for (int j = 0; (float)j < num6 / 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 num4 = param.tile;
float num7 = param.tile;
param.tile = 0f;
rendererFov.Draw(param);
param.tile = num4;
param.tile = num7;
}
}
param.y = orgY;public virtual void DrawTile()
{
orgY = param.y;
orgZ = param.z;
int num5 = 0;
int num8 = 0;
if (sourceBlock.tileType.IsFullBlock)
{
SourceBlock.Row row3 = sourceBlock;
num5 = sourceBlock._tiles[this.cell.blockDir % sourceBlock._tiles.Length];
num8 = sourceBlock._tiles[this.cell.blockDir % sourceBlock._tiles.Length];
}
else
{
SourceBlock.Row row3 = sourceFloor._defBlock;
num5 = row3._tiles[this.cell.blockDir % row3._tiles.Length];
num8 = 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 = num5 + ((!this.cell.Front.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
param.tile = num8 + ((!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 = num5 + ((!this.cell.Right.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
param.tile = num8 + ((!this.cell.Right.sourceFloor.tileType.IsDeepWater) ? 3000000 : 0);
rendererWaterBlock.Draw(param);
}
param.y = orgY;public virtual void DrawTile()
param.snow = snowed;
if (sourceFloor.anime.Length != 0)
{
int num6 = (int)(Time.realtimeSinceStartup * 1000f / (float)sourceFloor.anime[1] % (float)sourceFloor.anime[0]);
param.tile += num6;
int num9 = (int)(Time.realtimeSinceStartup * 1000f / (float)sourceFloor.anime[1] % (float)sourceFloor.anime[0]);
param.tile += num9;
}
if (this.cell.isDeck)
{public virtual void DrawTile()
}
sourceFloor.renderData.Draw(param);
}
int num7 = 0;
int num10 = 0;
if (isSnowCovered && sourceFloor == FLOOR.sourceSnow && !this.cell.hasDoor)
{
if (!this.cell.Right.IsSnowTile && this.cell.Right.topHeight == this.cell.topHeight)
{
num7++;
num10++;
}
if (!this.cell.Front.IsSnowTile && this.cell.Front.topHeight == this.cell.topHeight)
{
num7 += 2;
num10 += 2;
}
if (num7 != 0)
if (num10 != 0)
{
param.tile = 448 + num7 + 12;
param.tile = 448 + num10 + 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 && num7 == 0)
if (this.cell.autotile != 0 && sourceFloor.autotile != 0 && (!hasBridge || this.cell.bridgeHeight - this.cell.height > 3) && !this.cell.skipRender && num10 == 0)
{
pass = (isWater ? passAutoTileWater : passAutoTile);
batch = pass.batches[pass.batchIdx];public virtual void DrawTile()
}
if (isWater)
{
int num8 = 12;
int num9 = this.cell.shore / num8;
int num10 = this.cell.shore % num8;
int num11 = 12;
int num12 = this.cell.shore / num11;
int num13 = this.cell.shore % num11;
bool isShoreSand = this.cell.isShoreSand;
if (this.cell.shore != 0)
{
Cell cell = ((((uint)num9 & (true ? 1u : 0u)) != 0) ? this.cell.Back : ((((uint)num9 & 2u) != 0) ? this.cell.Right : ((((uint)num9 & 4u) != 0) ? this.cell.Front : this.cell.Left)));
Cell cell = ((((uint)num12 & (true ? 1u : 0u)) != 0) ? this.cell.Back : ((((uint)num12 & 2u) != 0) ? this.cell.Right : ((((uint)num12 & 4u) != 0) ? this.cell.Front : this.cell.Left)));
if (isShoreSand && !cell.sourceFloor.isBeach)
{
cell = ((((uint)num9 & 8u) != 0) ? this.cell.Left : ((((uint)num9 & 4u) != 0) ? this.cell.Front : ((((uint)num9 & 2u) != 0) ? this.cell.Right : this.cell.Back)));
cell = ((((uint)num12 & 8u) != 0) ? this.cell.Left : ((((uint)num12 & 4u) != 0) ? this.cell.Front : ((((uint)num12 & 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 / num8;
batch.tiles[pass.idx] = 768 + this.cell.shore / num11;
batch.colors[pass.idx] = param.color;
batch.matColors[pass.idx] = param.matColor;
pass.idx++;public virtual void DrawTile()
{
pass.NextBatch();
}
num10 = 2;
num13 = 2;
}
else
{
num10 = cell.sourceFloor.edge;
num13 = cell.sourceFloor.edge;
}
param.tile = (24 + num10 / 2) * 32 + num10 % 2 * 16 + num9;
param.tile = (24 + num13 / 2) * 32 + num13 % 2 * 16 + num12;
rendererShore.Draw(param);
}
}
if (this.cell.Back.isShoreSand && ((uint)(this.cell.Back.shore / num8) & 8u) != 0 && this.cell.Left.isShoreSand && ((uint)(this.cell.Left.shore / num8) & (true ? 1u : 0u)) != 0)
if (this.cell.Back.isShoreSand && ((uint)(this.cell.Back.shore / num11) & 8u) != 0 && this.cell.Left.isShoreSand && ((uint)(this.cell.Left.shore / num11) & (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 / num8) & 2u) != 0 && this.cell.Right.isShoreSand && ((uint)(this.cell.Right.shore / num8) & (true ? 1u : 0u)) != 0)
if (this.cell.Back.isShoreSand && ((uint)(this.cell.Back.shore / num11) & 2u) != 0 && this.cell.Right.isShoreSand && ((uint)(this.cell.Right.shore / num11) & (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 / num8) & 2u) != 0 && this.cell.Right.isShoreSand && ((uint)(this.cell.Right.shore / num8) & 4u) != 0)
if (this.cell.Front.isShoreSand && ((uint)(this.cell.Front.shore / num11) & 2u) != 0 && this.cell.Right.isShoreSand && ((uint)(this.cell.Right.shore / num11) & 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 / num8) & 8u) != 0 && this.cell.Left.isShoreSand && ((uint)(this.cell.Left.shore / num8) & 4u) != 0)
if (this.cell.Front.isShoreSand && ((uint)(this.cell.Front.shore / num11) & 8u) != 0 && this.cell.Left.isShoreSand && ((uint)(this.cell.Left.shore / num11) & 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)num9 & (true ? 1u : 0u)) != 0)
if (((uint)num12 & (true ? 1u : 0u)) != 0)
{
if (((uint)num9 & 8u) != 0)
if (((uint)num12 & 8u) != 0)
{
if ((num9 & 2) == 0 && (num9 & 4) == 0)
if ((num12 & 2) == 0 && (num12 & 4) == 0)
{
Draw(16);
}
flag6 = true;
}
if (((uint)num9 & 2u) != 0)
if (((uint)num12 & 2u) != 0)
{
if ((num9 & 8) == 0 && (num9 & 4) == 0)
if ((num12 & 8) == 0 && (num12 & 4) == 0)
{
Draw(20);
}
flag6 = true;
}
}
if (((uint)num9 & 4u) != 0)
if (((uint)num12 & 4u) != 0)
{
if (((uint)num9 & 8u) != 0)
if (((uint)num12 & 8u) != 0)
{
if ((num9 & 2) == 0 && (num9 & 1) == 0)
if ((num12 & 2) == 0 && (num12 & 1) == 0)
{
Draw(24);
}
flag6 = true;
}
if (((uint)num9 & 2u) != 0)
if (((uint)num12 & 2u) != 0)
{
if ((num9 & 8) == 0 && (num9 & 1) == 0)
if ((num12 & 8) == 0 && (num12 & 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 / num8) & (true ? 1u : 0u)) != 0)
if (((uint)(this.cell.shore / num11) & (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 / num8) & 8u) != 0)
if (((uint)(this.cell.shore / num11) & 8u) != 0)
{
if (isShoreSand)
{public virtual void DrawTile()
param.z += bridgeFix.z;
param.dir = 0;
SourceBlock.Row row4 = sourceBridge._bridgeBlock;
float num11 = (float)(this.cell.bridgeHeight - this.cell.height) * _heightMod.y;
float num14 = (float)(this.cell.bridgeHeight - this.cell.height) * _heightMod.y;
if (this.cell.sourceFloor.tileType == TileType.Sky)
{
num11 += (float)EMono._map.config.skyBlockHeight;
num14 += (float)EMono._map.config.skyBlockHeight;
}
int num12 = (int)(num11 / heightBlockSize) + 2;
int num15 = (int)(num14 / heightBlockSize) + 2;
if (this.cell.bridgePillar != 0)
{
row4 = EMono.sources.blocks.rows[this.cell.bridgePillar];
param.tile = row4._tiles[0] + ((num12 == 2) ? 32 : 0);
param.tile = row4._tiles[0] + ((num15 == 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 < num12; l++)
for (int l = 0; l < num15; l++)
{
if (l == num12 - 1)
if (l == num15 - 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()
param.z = orgZ;
}
}
if (this.cell._deco != 0)
{
param.mat = matFloor;
param.tile = sourceDeco._tiles[floorDir % sourceDeco._tiles.Length];
param.matColor = ((sourceDeco.colorMod == 0) ? 104025 : GetColorInt(ref matDeco.matColor, sourceDeco.colorMod));
param.snow = snowed;
if (sourceDeco.autotile != 0)
{
if (this.cell.autotileDeco != 0)
{
pass = passAutoTile;
batch = pass.batches[pass.batchIdx];
batch.matrices[pass.idx].m03 = param.x;
batch.matrices[pass.idx].m13 = param.y;
batch.matrices[pass.idx].m23 = param.z + ((hasBridge || this.cell._block != 0) ? 0.8f : 0f);
batch.tiles[pass.idx] = (26 + sourceDeco.autotile / 2) * 32 + sourceDeco.autotile % 2 * 16 + this.cell.autotileDeco;
batch.colors[pass.idx] = param.color + (float)((int)(sourceFloor.autotileBrightness * 100f) * 262144);
batch.matColors[pass.idx] = param.matColor;
pass.idx++;
if (pass.idx == pass.batchSize)
{
pass.NextBatch();
}
}
}
else
{
sourceDeco.renderData.Draw(param);
}
}
if (!buildMode && this.cell.highlight != 0)
{
if (this.cell._block != 0 && !this.cell.hasDoor)public virtual void DrawTile()
{
snowed = false;
}
int num13 = 0;
num3 = 0;
if (sourceBlock.id != 0)
{
this.tileType = sourceBlock.tileType;
roomHeight = 0f;
int blockDir = this.cell.blockDir;
bool num16 = this.tileType.blockRenderMode == BlockRenderMode.Floor;
bool flag7 = false;
switch (wallClipMode)
if (!num16)
{
case WallClipMode.ByRoom:
if (!this.tileType.RepeatBlock)
{
break;
}
if (currentRoom == null || showFullWall)
{
this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.FrontRight.room;
_lowblock = lowBlock;
}
else if (this.room != this.cell.Front.room && (this.cell.Front.room == currentRoom || (this.room?.lot != currentLot && this.cell.Front.room?.lot == currentLot)))
{
this.room = this.cell.Front.room;
_lowblock = !this.cell.Front.lotWall && !this.cell.Front.fullWall;
}
else if (this.room != this.cell.Right.room && (this.cell.Right.room == currentRoom || (this.room?.lot != currentLot && this.cell.Right.room?.lot == currentLot)))
{
this.room = this.cell.Right.room;
_lowblock = !this.cell.Right.lotWall && !this.cell.Right.fullWall;
}
else if (this.tileType.IsFullBlock && this.room != this.cell.FrontRight.room && (this.cell.FrontRight.room == currentRoom || (this.room?.lot != currentLot && this.cell.FrontRight.room?.lot == currentLot)))
{
this.room = this.cell.FrontRight.room;
_lowblock = !this.cell.FrontRight.lotWall && !this.cell.FrontRight.fullWall;
}
else
switch (wallClipMode)
{
this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.FrontRight.room;
_lowblock = true;
if (!this.tileType.IsFullBlock)
case WallClipMode.ByRoom:
if (!this.tileType.RepeatBlock)
{
if (this.cell.lotWall)
{
_lowblock = false;
}
else if (this.room == currentRoom)
{
_lowblock = !this.cell.fullWall;
}
break;
}
}
flag7 = (this.room != null && this.room.data.atrium) || (this.cell.room != null && this.cell.room.data.atrium);
if (flag7)
{
_lowblock = false;
}
if (this.room == null && alwaysLowblock)
{
_lowblock = true;
roomHeight = 0f;
}
if (this.room != null)
{
maxHeight = (float)(cz - cx) * screen.tileAlign.y + (float)this.room.lot.mh * _heightMod.y;
if (showRoof)
if (currentRoom == null || showFullWall)
{
roomHeight = this.room.lot.realHeight;
break;
this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.FrontRight.room;
_lowblock = lowBlock;
}
if ((noRoofMode && currentRoom == null) || (_lowblock && !this.tileType.ForceRpeatBlock))
else if (this.room != this.cell.Front.room && (this.cell.Front.room == currentRoom || (this.room?.lot != currentLot && this.cell.Front.room?.lot == currentLot)))
{
roomHeight = 0f;
break;
this.room = this.cell.Front.room;
_lowblock = !this.cell.Front.lotWall && !this.cell.Front.fullWall;
}
int num14 = ((this.room.data.maxHeight == 0) ? 2 : this.room.data.maxHeight);
roomHeight = EMono.setting.render.roomHeightMod * (float)((this.room.lot.height < num14) ? this.room.lot.height : num14) + 0.01f * (float)this.room.lot.heightFix;
}
break;
case WallClipMode.ByLot:
if (defaultBlockHeight > 0f || isIndoor)
{
_lowblock = cx != 0 && cz != Size - 1 && ((!this.cell.Back.HasBlock && !this.cell.Back.isWallEdge) || (!this.cell.Left.HasBlock && !this.cell.Left.isWallEdge) || !this.cell.Back.Left.HasBlock);
if (!_lowblock)
else if (this.room != this.cell.Right.room && (this.cell.Right.room == currentRoom || (this.room?.lot != currentLot && this.cell.Right.room?.lot == currentLot)))
{
roomHeight = defaultBlockHeight * EMono.setting.render.roomHeightMod;
maxHeight = (float)(cz - cx) * screen.tileAlign.y + (float)(int)this.cell.TopHeight * _heightMod.y;
this.room = this.cell.Right.room;
_lowblock = !this.cell.Right.lotWall && !this.cell.Right.fullWall;
}
break;
}
if (showFullWall)
{
_lowblock = this.room != null;
if (_lowblock)
else if (this.tileType.IsFullBlock && this.room != this.cell.FrontRight.room && (this.cell.FrontRight.room == currentRoom || (this.room?.lot != currentLot && this.cell.FrontRight.room?.lot == currentLot)))
{
this.room = this.cell.FrontRight.room;
_lowblock = !this.cell.FrontRight.lotWall && !this.cell.FrontRight.fullWall;
}
else
{
if (this.cell.Back.IsRoomEdge && this.cell.Right.IsRoomEdge && this.cell.Back.room == null && this.cell.Right.room == null && this.cell.Right.Front.room?.lot == this.room?.lot)
this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.FrontRight.room;
_lowblock = true;
if (!this.tileType.IsFullBlock)
{
_lowblock = false;
if (this.cell.lotWall)
{
_lowblock = false;
}
else if (this.room == currentRoom)
{
_lowblock = !this.cell.fullWall;
}
}
}
else if (this.cell.Back.room != null && this.cell.Back.room.lot == (this.cell.Front.room ?? this.cell.Right.room)?.lot)
flag7 = (this.room != null && this.room.data.atrium) || (this.cell.room != null && this.cell.room.data.atrium);
if (flag7)
{
_lowblock = false;
}
if (this.room == null && alwaysLowblock)
{
_lowblock = true;
roomHeight = 0f;
}
}
else
{
_lowblock = lowBlock;
}
if (this.tileType.RepeatBlock)
{
this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.FrontRight.room;
if (this.room != null && (!noRoofMode || currentRoom != null) && (!showFullWall || currentRoom == null || this.room.lot == currentRoom.lot))
if (this.room != null)
{
roomHeight = ((_lowblock && !this.tileType.ForceRpeatBlock) ? 0f : this.room.lot.realHeight);
maxHeight = (float)(cz - cx) * screen.tileAlign.y + (float)this.room.lot.mh * _heightMod.y;
if (showRoof)
{
roomHeight = this.room.lot.realHeight;
break;
}
if ((noRoofMode && currentRoom == null) || (_lowblock && !this.tileType.ForceRpeatBlock))
{
roomHeight = 0f;
break;
}
int num17 = ((this.room.data.maxHeight == 0) ? 2 : this.room.data.maxHeight);
roomHeight = EMono.setting.render.roomHeightMod * (float)((this.room.lot.height < num17) ? this.room.lot.height : num17) + 0.01f * (float)this.room.lot.heightFix;
}
break;
case WallClipMode.ByLot:
if (defaultBlockHeight > 0f || isIndoor)
{
_lowblock = cx != 0 && cz != Size - 1 && ((!this.cell.Back.HasBlock && !this.cell.Back.isWallEdge) || (!this.cell.Left.HasBlock && !this.cell.Left.isWallEdge) || !this.cell.Back.Left.HasBlock);
if (!_lowblock)
{
roomHeight = defaultBlockHeight * EMono.setting.render.roomHeightMod;
maxHeight = (float)(cz - cx) * screen.tileAlign.y + (float)(int)this.cell.TopHeight * _heightMod.y;
}
break;
}
if (showFullWall)
{
_lowblock = this.room != null;
if (_lowblock)
{
if (this.cell.Back.IsRoomEdge && this.cell.Right.IsRoomEdge && this.cell.Back.room == null && this.cell.Right.room == null && this.cell.Right.Front.room?.lot == this.room?.lot)
{
_lowblock = false;
}
}
else if (this.cell.Back.room != null && this.cell.Back.room.lot == (this.cell.Front.room ?? this.cell.Right.room)?.lot)
{
_lowblock = true;
}
}
else
{
_lowblock = lowBlock;
}
if (this.tileType.RepeatBlock)
{
this.room = this.room ?? this.cell.Front.room ?? this.cell.Right.room ?? this.cell.FrontRight.room;
if (this.room != null && (!noRoofMode || currentRoom != null) && (!showFullWall || currentRoom == null || this.room.lot == currentRoom.lot))
{
roomHeight = ((_lowblock && !this.tileType.ForceRpeatBlock) ? 0f : this.room.lot.realHeight);
maxHeight = (float)(cz - cx) * screen.tileAlign.y + (float)this.room.lot.mh * _heightMod.y;
}
}
break;
}
break;
}
if (!_lowblock && (double)roomHeight > 1.2 && this.tileType.RepeatBlock)
{
num13 = 1;
num3 = 1;
}
else if (lowBlock)
{
num13 = 2;
num3 = 2;
}
param.mat = matBlock;
param.dir = this.cell.blockDir;public virtual void DrawTile()
}
if (!_lowblock)
{
int num15 = ((currentRoom.data.maxHeight == 0) ? 2 : currentRoom.data.maxHeight);
roomHeight = EMono.setting.render.roomHeightMod * (float)((currentRoom.lot.height < num15) ? currentRoom.lot.height : num15) + 0.01f * (float)currentRoom.lot.heightFix;
int num19 = ((currentRoom.data.maxHeight == 0) ? 2 : currentRoom.data.maxHeight);
roomHeight = EMono.setting.render.roomHeightMod * (float)((currentRoom.lot.height < num19) ? currentRoom.lot.height : num19) + 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 num16 = param.z;
float num20 = 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 = num16;
param.z = num20;
}
}
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 num17 = param.z;
float num21 = 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 = num17;
param.z = num21;
}
}
break;public virtual void DrawTile()
}
else
{
int num18 = ((room4.data.maxHeight == 0) ? 2 : room4.data.maxHeight);
roomHeight = EMono.setting.render.roomHeightMod * (float)((room4.lot.height < num18) ? room4.lot.height : num18) + 0.01f * (float)room4.lot.heightFix;
int num22 = ((room4.data.maxHeight == 0) ? 2 : room4.data.maxHeight);
roomHeight = EMono.setting.render.roomHeightMod * (float)((room4.lot.height < num22) ? room4.lot.height : num22) + 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 num19 = this.cell.objDir + ((this.cell.objDir >= 7) ? this.cell.objDir : 0) + 1;
if (num19 == 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, num19, sourceBlock.tileType.RepeatSize);
renderData2.DrawRepeat(param, num18, sourceBlock.tileType.RepeatSize);
}
param.tile = renderData2.idShadow;
SourcePref shadowPref2 = renderData2.shadowPref;
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);
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);
break;
}
case BlockRenderMode.Floor:
param.color = floorLight;
param.tile = sourceBlock._tiles[this.cell.blockDir % sourceBlock._tiles.Length];
param.matColor = ((sourceBlock.colorMod == 0) ? 104025 : GetColorInt(ref matBlock.matColor, sourceBlock.colorMod));
sourceBlock.renderData.Draw(param);
break;
default:
param.color = floorLight;
param.tile = sourceBlock._tiles[this.cell.blockDir % sourceBlock._tiles.Length] + ((_lowblock && this.tileType.UseLowBlock) ? 3000000 : 0);public virtual void DrawTile()
{
if (this.cell.room != null || !this.cell.IsRoomEdge || !showRoof)
{
goto IL_6fd9;
goto IL_7327;
}
if (this.cell._block == 0 || !this.cell.sourceBlock.tileType.RepeatBlock)
{
Room obj = this.cell.FrontRight.room;
if (obj == null || !obj.HasRoof)
{
goto IL_6fd9;
goto IL_7327;
}
}
}
goto IL_7039;
IL_7039:
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 num20 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.anime[1] % (float)sourceEffect2.anime[2];
if (!(num20 >= (float)sourceEffect2.anime[0]))
{
param.tile += num20;
}
}
else
{
float num21 = Time.realtimeSinceStartup * 1000f / (float)sourceEffect2.anime[1] % (float)sourceEffect2.anime[0];
param.tile += num21;
}
}
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);
}
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_7b6a;
IL_7b6a:
goto IL_7387;
IL_7eb8:
if (detail.things.Count == 0 && detail.charas.Count == 0)
{
return;
}
int num22 = 0;
int num23 = 0;
thingPos.x = 0f;
thingPos.y = 0f;
thingPos.z = 0f;public virtual void DrawTile()
}
Thing thing = null;
bool shadow = liquidLv == 0;
float num23 = 0f;
float num24 = 0f;
float num25 = 0f;
float num26 = 0f;
bool flag10 = false;
float num27 = 0f;
bool flag11 = false;
bool flag10 = false;
float num28 = 0f;
bool flag11 = false;
float num29 = 0f;
if (detail.things.Count > 0 && isSeen)
{
_ = zSetting.max1;
float num29 = 0f;
float num30 = 0f;
for (int m = 0; m < detail.things.Count; m++)
{
Thing t = detail.things[m];public virtual void DrawTile()
{
pref = rendererObjDummy.shadowPref;
}
float num30 = ((tileType.UseMountHeight && isInstalled) ? 0f : ((pref.height < 0f) ? 0f : ((pref.height == 0f) ? 0.1f : pref.height)));
float num31 = ((tileType.UseMountHeight && isInstalled) ? 0f : ((pref.height < 0f) ? 0f : ((pref.height == 0f) ? 0.1f : pref.height)));
if (t.ignoreStackHeight)
{
thingPos.y -= num23;
thingPos -= altitudeFix * num24;
thingPos.y -= num24;
thingPos -= altitudeFix * num25;
}
shadow = thingPos.y < 0.16f && num28 < 0.16f;
shadow = thingPos.y < 0.16f && num29 < 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 + num29;
_actorPos.z = param.z + num30;
if (this.room != null)
{
param.color = GetRoofLight(this.room.lot);public virtual void DrawTile()
else
{
param.snow = snowed;
_actorPos.x = orgX + num26;
_actorPos.x = orgX + num27;
_actorPos.y = orgY;
_actorPos.z = orgZ + num29 + thingPos.z;
_actorPos.z = orgZ + num30 + 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 -= num23;
thingPos.y -= num24;
if (thing != null)
{
_actorPos.z -= 0.2f;
thingPos.z -= 0.2f;
}
_actorPos.y -= num23;
_actorPos.y -= num24;
}
_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)
{
num28 += rampFix2.y;
num29 += rampFix2.y;
}
liquidLv -= (int)(rampFix2.y * 150f);
if (liquidLv < 0)public virtual void DrawTile()
}
else if (!flag11 && t.trait.IsChangeFloorHeight && !t.ignoreStackHeight)
{
orgY += num30 + (float)t.altitude * altitudeFix.y;
orgY += num31 + (float)t.altitude * altitudeFix.y;
orgZ += (float)t.altitude * altitudeFix.z;
freePos.y += num30 + (float)t.altitude * altitudeFix.y;
freePos.y += num31 + (float)t.altitude * altitudeFix.y;
if (!this.cell.IsTopWater || t.altitude > 0)
{
num28 += num30 + (float)t.altitude * altitudeFix.y;
num29 += num31 + (float)t.altitude * altitudeFix.y;
}
_actorPos.x += pref.x * (float)((!t.flipX) ? 1 : (-1));
_actorPos.z += pref.z;
thingPos.z += pref.z;
liquidLv -= (int)(num30 * 150f);
liquidLv -= (int)(num31 * 150f);
if (liquidLv < 0)
{
liquidLv = 0;public virtual void DrawTile()
}
else
{
thingPos.y += num30;
thingPos.y += num31;
if (tileType.UseMountHeight)
{
if ((tileType != TileType.Illumination || !this.cell.HasObj) && !tileType.AlwaysShow)public virtual void DrawTile()
}
else
{
thingPos.y += num30;
thingPos.y += num31;
_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 num31 = ((this.cell._bridge != 0) ? sourceBridge.tileType.FloorHeight : sourceFloor.tileType.FloorHeight);
orgY += 0.01f * floatY - num31;
float num32 = ((this.cell._bridge != 0) ? sourceBridge.tileType.FloorHeight : sourceFloor.tileType.FloorHeight);
orgY += 0.01f * floatY - num32;
if (!t.trait.IsChangeFloorHeight)
{
num27 = num30;
num28 = num31;
}
_actorPos.y += 0.01f * floatY - num31;
_actorPos.y += 0.01f * floatY - num32;
if (liquidLv > 10)
{
liquidLv = TileType.FloorWaterShallow.LiquidLV * 10;public virtual void DrawTile()
}
param.liquidLv = liquidLv;
}
num23 = num30;
num24 = num31;
if (t.sourceCard.multisize && !t.trait.IsGround)
{
num29 += zSetting.multiZ;
num30 += zSetting.multiZ;
}
orgZ += t.renderer.data.stackZ;
if (param.liquidLv > 0)public virtual void DrawTile()
_actorPos += altitudeFix * t.altitude;
if (!t.isRoofItem)
{
num25 += (float)t.altitude;
num24 = t.altitude;
num26 += (float)t.altitude;
num25 = t.altitude;
}
}
if (num25 >= 2f && ((this.cell.Back.room != null && this.cell.Back.IsRoomEdge) || (this.cell.Left.room != null && this.cell.Left.IsRoomEdge)) && hideHang && (this.cell.room?.lot != currentLot || (!this.cell.lotWall && this.cell.room != currentRoom)))
if (num26 >= 2f && ((this.cell.Back.room != null && this.cell.Back.IsRoomEdge) || (this.cell.Left.room != null && this.cell.Left.IsRoomEdge)) && hideHang && (this.cell.room?.lot != currentLot || (!this.cell.lotWall && this.cell.room != currentRoom)))
{
continue;
}public virtual void DrawTile()
{
if (iconMode != 0)
{
int num32 = 0;
int num33 = 0;
switch (iconMode)
{
case CardIconMode.Visibility:
if (t.isMasked)
{
num32 = 17;
num33 = 17;
}
break;
case CardIconMode.State:
if (t.placeState == PlaceState.installed)
{
num32 = 18;
num33 = 18;
}
break;
case CardIconMode.Deconstruct:
if (t.isDeconstructing)
{
num32 = 14;
num33 = 14;
}
break;
}
if (t.isNPCProperty && !EMono.debug.godBuild)
{
num32 = 13;
num33 = 13;
}
if (num32 != 0)
if (num33 != 0)
{
passGuideBlock.Add(_actorPos.x, _actorPos.y, _actorPos.z - 10f, num32);
passGuideBlock.Add(_actorPos.x, _actorPos.y, _actorPos.z - 10f, num33);
}
}
t.SetRenderParam(param);public virtual void DrawTile()
}
if (isInstalled)
{
num26 += pref.stackX * (float)((!t.flipX) ? 1 : (-1));
num27 += pref.stackX * (float)((!t.flipX) ? 1 : (-1));
}
param.x = orgX;
param.y = orgY;public virtual void DrawTile()
}
}
}
orgY += num27;
orgY += num28;
if (detail.charas.Count <= 0)
{
return;
}
param.shadowFix = 0f - num28;
param.shadowFix = 0f - num29;
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 num33 = getRestrainPos.y + defCharaHeight - ((chara.Pref.height == 0f) ? defCharaHeight : chara.source.pref.height);
float num34 = 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 + num33;
_actorPos.y = position.y + num34;
_actorPos.z = position.z + getRestrainPos.z;
param.liquidLv = 0;
param.shadowFix = orgY - _actorPos.y;public virtual void DrawTile()
{
if (chara.IsDeadOrSleeping && chara.IsPCC)
{
float num34 = chara.renderer.data.size.y * 0.3f;
float num35 = chara.renderer.data.size.y * 0.3f;
if (thingPos.y > max)
{
thingPos.y = max;
}
float num35 = thingPos.y + num34;
float num36 = (float)n * -0.01f;
if (num35 > zSetting.thresh1)
float num36 = thingPos.y + num35;
float num37 = (float)n * -0.01f;
if (num36 > zSetting.thresh1)
{
num36 = zSetting.mod1;
num37 = zSetting.mod1;
}
_actorPos.x += thingPos.x;
_actorPos.y += thingPos.y;
_actorPos.z += renderSetting.laydownZ + num36;
_actorPos.z += renderSetting.laydownZ + num37;
param.liquidLv = ((thingPos.y == 0f && liquidLv > 0) ? 90 : 0);
thingPos.y += num34 * 0.8f;
thingPos.y += num35 * 0.8f;
chara.renderer.Draw(param, ref _actorPos, liquidLv == 0);
}
elsepublic virtual void DrawTile()
{
if (chara.Pref.FloatUnderwater)
{
float num37 = ((this.cell._bridge != 0) ? sourceBridge.tileType.FloorHeight : sourceFloor.tileType.FloorHeight);
float num38 = floatYs[chara.uid % 10] + 10f + (float)(chara.uid % 30);
orgY += 0.01f * num38 - num37;
_actorPos.y += 0.01f * num38 - num37;
param.shadowFix -= 0.01f * num38 - num37;
float num38 = ((this.cell._bridge != 0) ? sourceBridge.tileType.FloorHeight : sourceFloor.tileType.FloorHeight);
float num39 = floatYs[chara.uid % 10] + 10f + (float)(chara.uid % 30);
orgY += 0.01f * num39 - num38;
_actorPos.y += 0.01f * num39 - num38;
param.shadowFix -= 0.01f * num39 - num38;
}
}
else if (liquidLv > 0)public virtual void DrawTile()
{
if (liquidLv > 20)
{
float num39 = ((this.cell._bridge != 0) ? sourceBridge.tileType.FloorHeight : sourceFloor.tileType.FloorHeight);
orgY += 0.01f * floatY - num39;
_actorPos.y += 0.01f * floatY - num39;
int num40 = TileType.FloorWaterShallow.LiquidLV * 10;
num40 -= (int)(floatY * 0.5f);
param.liquidLv = num40;
float num40 = ((this.cell._bridge != 0) ? sourceBridge.tileType.FloorHeight : sourceFloor.tileType.FloorHeight);
orgY += 0.01f * floatY - num40;
_actorPos.y += 0.01f * floatY - num40;
int num41 = TileType.FloorWaterShallow.LiquidLV * 10;
num41 -= (int)(floatY * 0.5f);
param.liquidLv = num41;
}
else
{public virtual void DrawTile()
param.liquidLv = 99 + chara.Pref.liquidModMax;
}
}
if (!chara.IsPC && !chara.renderer.IsMoving && detail.charas.Count > 1 && (detail.charas.Count != 2 || !detail.charas[0].IsDeadOrSleeping || !detail.charas[0].IsPCC))
if (!chara.IsPC && EMono.pc.host != chara && !chara.renderer.IsMoving && detail.charas.Count > 1 && (detail.charas.Count != 2 || !detail.charas[0].IsDeadOrSleeping || !detail.charas[0].IsPCC))
{
_actorPos += renderSetting.charaPos[1 + ((num22 < 4) ? num22 : 3)];
_actorPos += renderSetting.charaPos[1 + ((num23 < 4) ? num23 : 3)];
}
_actorPos.z += 0.01f * (float)n + renderSetting.charaZ;
num22++;
num23++;
if (flag10)
{
_actorPos.z += chara.renderer.data.hangedFixZ;public virtual void DrawTile()
param.y = orgY;
param.z = orgZ;
}
return;
IL_6fd9:
if (!showRoof || !roof || this.cell.room == null || this.cell.Front.room == null || this.cell.Right.room == null)
{
param.tile = num13;
rendererFov.Draw(param);
}
goto IL_7039;
void Draw(int tile)
{
pass = passEdge;BlockRenderMode โ
FullBlock,
WallOrFence,
Pillar,
HalfBlock
HalfBlock,
Floor
}Card โ
public void DamageHP(long dmg, int ele, int eleP = 100, AttackSource attackSourc
if ((num != 0 || num2 != 0) && !chara4.IsDisabled && !chara4.isRestrained && (!IsPCFactionOrMinion || chara4.IsPCFactionOrMinion) && (IsPCFactionOrMinion || !chara4.IsPCFactionOrMinion) && chara4.Dist(this) <= Mathf.Max(num, (num2 > 0) ? 1 : 0) && (num != 0 || num2 <= 0 || hp * 100 / MaxHP <= chara4.hp * 100 / chara4.MaxHP))
{
Say((num2 == 0) ? "wall_flesh" : "wall_knightly", chara4, this);
chara4.DamageHP(dmg * (100 + ((num2 <= 0) ? 10 : 0)) / 100, ele, eleP, attackSource, origin, showEffect, weapon, Chara);
chara4.DamageHP(dmg * (100 + ((num2 > 0) ? (-10) : 0) + ((num > 0) ? 10 : 0)) / 100, ele, eleP, attackSource, origin, showEffect, weapon, Chara);
return;
}
}public void DamageHP(long dmg, int ele, int eleP = 100, AttackSource attackSourc
Chara.AddCondition<ConFractured>((int)Mathf.Max(10f, 30f - Mathf.Sqrt(Evalue(436))));
hp = Mathf.Min(half * (int)Mathf.Sqrt(Evalue(436) * 2) / 100, MaxHP / 3);
});
goto IL_1066;
goto IL_1071;
}
}
if (zoneInstanceBout != null && (bool)LayerDrama.Instance)public void DamageHP(long dmg, int ele, int eleP = 100, AttackSource attackSourc
if (EClass.player.invlunerable)
{
EvadeDeath(null);
goto IL_1066;
goto IL_1071;
}
}
if (Evalue(1220) > 0 && Chara.stamina.value >= (IsPC ? (Chara.stamina.max / 2) : (Chara.stamina.max / 3 * 2)))public void DamageHP(long dmg, int ele, int eleP = 100, AttackSource attackSourc
}
}
}
goto IL_1066;
IL_1066:
goto IL_1071;
IL_1071:
if (trait.CanBeAttacked)
{
renderer.PlayAnime(AnimeID.HitObj);public void SpawnLoot(Card origin)
{
num5++;
}
string text2 = id;
if (text2 == "big_daddy" || text2 == "santa")
switch (id)
{
case "big_daddy":
case "big_daddy2":
case "santa":
num5 += 2;
break;
}
if (num5 > 0 && EClass.game.principal.dropRate)
{public MoveResult TryMoveFrom(Point p)
{
return MoveResult.Success;
}
for (int i = -1; i < 2; i++)
if (trait is TraitSnitch)
{
for (int j = -1; j < 2; j++)
for (int i = -1; i < 2; i++)
{
if (EClass.rnd(2) != 0)
for (int j = -1; j < 2; j++)
{
point.x = pos.x + j;
point.z = pos.z + i;
if (!point.Equals(lastPos) && point.IsValid && !point.HasChara && TryMove(point, allowDestroyPath: false) == MoveResult.Success)
if (EClass.rnd(2) != 0)
{
return MoveResult.Success;
point.x = pos.x + j;
point.z = pos.z + i;
if (!point.Equals(lastPos) && point.IsValid && !point.HasChara && TryMove(point, allowDestroyPath: false) == MoveResult.Success)
{
return MoveResult.Success;
}
}
}
}Cell โ
public class Cell : WeightCell, IFloodCell
public static List<SourceFloor.Row> floorList;
public static List<SourceDeco.Row> decoList;
public static List<SourceCellEffect.Row> effectList;
public static List<SourceObj.Row> objList;public class Cell : WeightCell, IFloodCell
public byte _roofBlockDir;
public byte _deco;
public byte _decoMat;
public byte x;
public byte z;public class Cell : WeightCell, IFloodCell
public byte autotile;
public byte autotileDeco;
public byte autotileBridge;
public byte autotileObj; {
if (_bridge != 0)
{
return sourceBridge.alias == "field";
return sourceBridge.Category.id == "floor_field";
}
return sourceFloor.alias == "field";
return sourceFloor.Category.id == "floor_field";
}
}
public SourceMaterial.Row matFloor => matList[_floorMat];
public SourceMaterial.Row matDeco => matList[_decoMat];
public SourceMaterial.Row matBridge => matList[_bridgeMat];
public SourceMaterial.Row matObj => matList[objMat];public SourceFloor.Row sourceSurface
}
}
public SourceDeco.Row sourceDeco => decoList[_deco];
public SourceCellEffect.Row sourceEffect => effect?.source ?? effectList[0];
public SourceObj.Row sourceObj => objList[obj]; TileType tileType = sourceBlock.tileType;
TileType tileType2 = sourceFloor.tileType;
MapBounds bounds = map.bounds;
bool flag = _bridge != 0;
bool hasBridge = _bridge != 0;
outOfBounds = x < bounds.x || z < bounds.z || x > bounds.maxX || z > bounds.maxZ;
isSurrounded4d = cell2.HasFullBlock && cell3.HasFullBlock && cell4.HasFullBlock && cell5.HasFullBlock;
isSurrounded = isSurrounded4d && cell6.HasFullBlock && cell7.HasFullBlock && cell8.HasFullBlock && cell9.HasFullBlock && cell4.bridgeHeight == bridgeHeight && cell3.bridgeHeight == bridgeHeight && cell5.bridgeHeight == bridgeHeight && cell2.bridgeHeight == bridgeHeight; openPath = false;
openSight = tileType.IsOpenSight || (cell4.hasWindow && !cell4.isCurtainClosed) || (cell3.hasWindow && !cell3.isCurtainClosed);
blockSight = tileType.IsBlockSight || ((objList[obj].growth != null) ? objList[obj].growth.BlockSight(this) : objList[obj].tileType.IsBlockSight);
blocked = outOfBounds || tileType.IsBlockPass || (tileType2.IsBlockPass && !flag) || ((objList[obj].growth != null) ? objList[obj].growth.BlockPass(this) : objList[obj].tileType.IsBlockPass) || impassable;
blocked = outOfBounds || tileType.IsBlockPass || (tileType2.IsBlockPass && !hasBridge) || ((objList[obj].growth != null) ? objList[obj].growth.BlockPass(this) : objList[obj].tileType.IsBlockPass) || impassable;
isSlopeEdge = height > cell3.height || height > cell4.height;
if (flag && sourceBridge.tileType.ShowPillar)
if (hasBridge && sourceBridge.tileType.ShowPillar)
{
isBridgeEdge = _bridge != cell3._bridge || _bridge != cell4._bridge || bridgeHeight > cell3.bridgeHeight || bridgeHeight > cell4.bridgeHeight || _bridge != cell2._bridge || _bridge != cell5._bridge || bridgeHeight > cell2.bridgeHeight || bridgeHeight > cell5.bridgeHeight;
} }
isShadowed = lotShade || sourceBlock.tileType.CastShadowSelf || cell4.sourceBlock.tileType.CastShadowBack || (!HasRoof && _roofBlock != 0);
castFloorShadow = lotShade || (room == null && sourceBlock.tileType.CastShadowSelf);
byte b = (flag ? bridgeHeight : height);
byte b = (hasBridge ? bridgeHeight : height);
byte b2 = ((cell4.bridgeHeight == 0) ? cell4.height : cell4.bridgeHeight);
byte b3 = ((cell3.bridgeHeight == 0) ? cell3.height : cell3.bridgeHeight);
byte b4 = ((cell10.bridgeHeight == 0) ? cell10.height : cell10.bridgeHeight); {
autotile = 0;
}
if (sourceDeco.autotile > 0)
{
autotileDeco = (byte)(((IsDecoAutoTileEdge(cell5) && z != Size - 1) ? 1 : 0) + ((IsDecoAutoTileEdge(cell3) && x != Size - 1) ? 2 : 0) + ((IsDecoAutoTileEdge(cell4) && z != 0) ? 4 : 0) + ((IsDecoAutoTileEdge(cell2) && x != 0) ? 8 : 0));
}
else
{
autotileDeco = 0;
}
if (_bridge != 0 && sourceBridge.autotile > 0)
{
autotileBridge = (byte)(((IsBridgeAutoTileEdge(cell5) && z != Size - 1) ? 1 : 0) + ((IsBridgeAutoTileEdge(cell3) && x != Size - 1) ? 2 : 0) + ((IsBridgeAutoTileEdge(cell4) && z != 0) ? 4 : 0) + ((IsBridgeAutoTileEdge(cell2) && x != 0) ? 8 : 0)); }
bool IsAutoTileEdge(Cell cell)
{
if (cell.sourceFloor.autotilePriority <= sourceFloor.autotilePriority && (!sourceFloor.isBeach || !cell.sourceFloor.isBeach) && (cell._floor != _floor || cell._floorMat != _floorMat))
if ((!sourceFloor.isBeach || !cell.sourceFloor.isBeach) && (cell._floor != _floor || cell._floorMat != _floorMat))
{
return true;
}bool IsAutoTileEdge(Cell cell)
}
bool IsBridgeAutoTileEdge(Cell cell)
{
if (cell.sourceBridge.autotilePriority <= sourceBridge.autotilePriority && (cell._bridge != _bridge || cell._bridgeMat != _bridgeMat))
if (cell._bridge != _bridge || cell._bridgeMat != _bridgeMat)
{
return true;
}
return bridgeHeight != cell.bridgeHeight;
}
bool IsDecoAutoTileEdge(Cell cell)
{
if (cell._deco != _deco)
{
return true;
}
if (!hasBridge)
{
return topHeight != cell.topHeight;
}
return bridgeHeight != cell.bridgeHeight;
}
bool IsObjAutoTileEdge(Cell cell)
{
if (cell.obj != obj && (obj != 31 || (cell.obj != 97 && cell.obj != 98)))
{
return true;
}
return topHeight != cell.topHeight;
if (!hasBridge)
{
return topHeight != cell.topHeight;
}
return bridgeHeight != cell.bridgeHeight;
}
}Chara โ
hygiene.Mod(2);
}
}
if (cell.sourceFloor.id == 20)
{
AddCondition<ConBurning>();
}
if (IsPC && !EClass._zone.IsRegion && cell.CanSuffocate() && !EClass.debug.godMode && !HasElement(1252))
{
AddCondition<ConSuffocation>(800 / (100 + EvalueMax(200, -5) * 10), force: true);public override void Die(Element e = null, Card origin = null, AttackSource atta
}
break;
case "big_daddy":
case "big_daddy2":
if (!IsPCFaction)
{
Chara chara = CharaGen.Create("littleOne");public void TrySetEnemy(Chara c)
}
}
private void GoHostile(Card _tg)
public void GoHostile(Card _tg)
{
if (enemy == null && !IsPC)
{ConFear โ
using Newtonsoft.Json;
public class ConFear : BadCondition
{
[JsonProperty]
public int turnStill;
public override Emo2 EmoIcon => Emo2.fear;
public override bool ConsumeTurn => !owner.IsPC; return;
}
}
if (!owner.IsPC && !EClass._zone.IsRegion)
if (owner.IsPC || EClass._zone.IsRegion)
{
return;
}
if (owner.TryMoveFrom((owner.enemy != null) ? owner.enemy.pos : EClass.pc.pos) == Card.MoveResult.Success)
{
turnStill = 0;
return;
}
turnStill++;
if (EClass.rnd(turnStill) > 2)
{
owner.TryMoveFrom((owner.enemy != null) ? owner.enemy.pos : EClass.pc.pos);
owner.Say("fear_break", owner);
Kill();
}
}
}Core โ
public static int GetElement(string id)
}
else
{
Debug.LogError("#element not found: " + id);
Debug.LogWarning("#element not found: " + id);
value = sourceElement.rows[0];
}
}DOMAIN โ
public class DOMAIN
{
public const int domHealing = 811;
public const int domTest = 800;
public const int domMachine = 809;
public const int domLuck = 810;
public const int domHarvest = 808;
public const int domOblivion = 813;
public const int domWind = 807;
public const int domEarth = 812;
public const int domElement = 806;
public const int domSurvival = 801;
public const int domEarth = 812;
public const int domHealing = 811;
public const int domComm = 805;
public const int domFaith = 802;
public const int domArcane = 804;
public const int domHarmony = 815;
public const int domMiracle = 803;
public const int domArcane = 804;
public const int domOblivion = 813;
public const int domMachine = 809;
public const int domEyth = 814;
public const int domHarvest = 808;
public const int domLuck = 810;
public const int domWind = 807;
public const int domHarmony = 815;
public const int domElement = 806;
public const int domSurvival = 801;
public const int domMiracle = 803;
public const int domFaith = 802;
public const int domEyth = 814;
public const int domTest = 800;
public const int domComm = 805;
public static readonly int[] IDS = new int[16]
{
811, 809, 808, 807, 806, 812, 805, 804, 803, 813,
814, 810, 815, 801, 802, 800
800, 810, 813, 812, 801, 811, 802, 815, 804, 809,
808, 807, 806, 803, 814, 805
};
}
public class Domain : EClassDramaCustomSequence โ
bool num2;
if (condition == null)
{
if (EClass.pc.HasElement(1232))
if (EClass.pc.HasElement(1232) || EClass.pc.HasElement(1291))
{
goto IL_093e;
goto IL_094a;
}
num2 = EClass.pc.HasElement(1291);
num2 = EClass.pc.HasCondition<StanceMama>();
}
else
{ }
if (num2)
{
goto IL_093e;
goto IL_094a;
}
goto IL_094f;
goto IL_095b;
}
if (c.isDrunk || c.HasElement(1275) || EClass.debug.enable)
{
Choice2(flag2 ? "daBird" : "daTail", "_tail");
}
}
goto IL_0d68;
IL_0d68:
goto IL_0d74;
IL_099a:
Choice2("daBaby", "_baby");
goto IL_09ab;
IL_094a:
Choice2("daMama", "_mama");
goto IL_095b;
IL_09ab:
if (c.trait.CanRevive)
{
Choice2("daRevive", "_revive").DisableSound();
}
if (!c.trait.IDTrainer.IsEmpty() && !EClass._zone.IsUserZone && (Guild.GetCurrentGuild() == null || Guild.GetCurrentGuild().relation.IsMember()))
{
Choice2("daTrain", "_train").DisableSound();
}
if (c.trait.CanWhore)
{
Choice2(flag2 ? "daBirdBuy" : "daTailBuy", "_whore");
}
if (c.trait.CanHeal)
{
Choice2("daHeal", "_heal");
}
if (c.trait.CanServeFood)
{
Choice2("daFood", "_food");
}
if (c.trait is TraitInformer)
{
Choice2("daSellFame", "_sellFame");
}
if (EClass._zone.AllowInvest)
{
if (c.trait.CanInvestTown && Guild.GetCurrentGuild() == null)
{
Choice2("daInvest", "_investZone");
}
if (c.trait.CanInvest)
{
Choice2("daInvest", "_investShop");
}
}
if (c.trait.CanIdentify)
{
Choice2("daIdentify", "_identify").DisableSound();
Choice2("daIdentifyAll", "_identifyAll");
Choice2("daIdentifySP", "_identifySP").DisableSound();
}
if (c.trait.CanPicklock)
{
if (c.Evalue(280) < 20)
{
c.elements.SetBase(280, 20);
}
foreach (Thing item4 in EClass.pc.things.List((Thing a) => a.c_lockLv > 0, onlyAccessible: true))
{
Thing _t4 = item4;
Choice2("daPicklock".lang(_t4.Name), "_picklock").SetOnClick(delegate
{
destThing = _t4;
});
}
}
if (c.trait is TraitBanker)
{
Choice2("daDeposit", "_deposit");
}
if (c.IsMaid || (c.trait.CanInvestTown && (EClass._zone.source.faction == "mysilia" || EClass._zone.IsPCFaction)))
{
Choice2("daExtraTax", "_extraTax");
}
if ((c.trait is TraitMiko_Mifu || c.trait is TraitMiko_Nefu || c.trait is TraitEureka) && EClass.world.date.IsExpired(c.c_dateStockExpire))
{
Choice2("daBlessing", "_blessing");
}
goto IL_0d74;
IL_0d74:
if (c.IsHomeMember())
{
if (c.IsMaid) Talk("what", StepDefault);
if (!c.IsMarried || EClass.debug.enable)
{
foreach (Thing item4 in EClass.pc.things.List((Thing a) => !a.c_isImportant && !a.isEquipped && a.c_uidAttune == 0 && (a.id == "amulet_engagement" || a.id == "ring_engagement")))
foreach (Thing item5 in EClass.pc.things.List((Thing a) => !a.c_isImportant && !a.isEquipped && a.c_uidAttune == 0 && (a.id == "amulet_engagement" || a.id == "ring_engagement")))
{
Thing _t4 = item4;
Choice("daMarry".lang(item4.Name), "_marry").SetOnClick(delegate
Thing _t3 = item5;
Choice("daMarry".lang(item5.Name), "_marry").SetOnClick(delegate
{
destThing = _t4;
destThing = _t3;
});
}
} QuestSupply supply = c.quest as QuestSupply;
if (supply != null)
{
foreach (Thing item5 in supply.ListDestThing())
foreach (Thing item6 in supply.ListDestThing())
{
Thing _t3 = item5;
Choice("daDeliver".lang(supply.GetTitle() ?? "", _t3.GetName(NameStyle.Full, supply.num)), "_deliver").SetOnClick(delegate
Thing _t2 = item6;
Choice("daDeliver".lang(supply.GetTitle() ?? "", _t2.GetName(NameStyle.Full, supply.num)), "_deliver").SetOnClick(delegate
{
EClass.game.quests.Start(c.quest);
destThing = _t3;
destThing = _t2;
destQuest = supply;
}).SetOnTooltip(delegate(UITooltip a)
{
_t3.WriteNote(a.note);
_t2.WriteNote(a.note);
});
}
} {
EClass.pc.party.AddMemeber(c);
}
foreach (Chara item6 in EClass.pc.party.members.ToList())
foreach (Chara item7 in EClass.pc.party.members.ToList())
{
if (item6 != EClass.pc && item6 != c)
if (item7 != EClass.pc && item7 != c)
{
EClass.pc.party.RemoveMember(item6);
EClass.pc.party.RemoveMember(item7);
}
}
if (c.host != null) Method(delegate
{
TempTalkTopic("blooming1", null);
foreach (Chara item7 in EClass.pc.party.members.Where((Chara c2) => c2.CanBloom()))
foreach (Chara item8 in EClass.pc.party.members.Where((Chara c2) => c2.CanBloom()))
{
Chara c4 = item7;
Chara c4 = item8;
Choice("daBloom".lang(c4.Name), delegate
{
if (EClass._zone.influence < 10) },
onList = delegate
{
foreach (ResearchPlan item8 in plans)
foreach (ResearchPlan item9 in plans)
{
list.Add(item8);
list.Add(item9);
}
}
}; },
onList = delegate
{
foreach (SourceElement.Row item9 in EClass.sources.elements.rows.Where(delegate(SourceElement.Row a)
foreach (SourceElement.Row item10 in EClass.sources.elements.rows.Where(delegate(SourceElement.Row a)
{
if (a.tag.Contains("unused"))
{ return a.category == "skill" && a.categorySub == c.trait.IDTrainer;
}).ToList())
{
list.Add(Element.Create(item9.id));
list.Add(Element.Create(item10.id));
}
}
}; {
SE.Pay();
EClass.pc.ModCurrency(-costIdentify);
foreach (Thing item10 in EClass.pc.things.List((Thing t) => !t.IsIdentified, onlyAccessible: true))
foreach (Thing item11 in EClass.pc.things.List((Thing t) => !t.IsIdentified, onlyAccessible: true))
{
item10.Thing.Identify(show: false);
if (!item10.IsInstalled)
item11.Thing.Identify(show: false);
if (!item11.IsInstalled)
{
numSuperior++;
} Step("_end");
End();
return;
IL_093e:
Choice2("daMama", "_mama");
goto IL_094f;
IL_098e:
Choice2("daBaby", "_baby");
goto IL_099f;
IL_094f:
IL_095b:
ConTransmuteHuman condition2 = c.GetCondition<ConTransmuteHuman>();
bool num3;
if (condition2 == null)
{
if (c.HasElement(1232))
{
goto IL_098e;
goto IL_099a;
}
num3 = c.HasElement(1291);
} }
if (num3)
{
goto IL_098e;
}
goto IL_099f;
IL_099f:
if (c.trait.CanRevive)
{
Choice2("daRevive", "_revive").DisableSound();
}
if (!c.trait.IDTrainer.IsEmpty() && !EClass._zone.IsUserZone && (Guild.GetCurrentGuild() == null || Guild.GetCurrentGuild().relation.IsMember()))
{
Choice2("daTrain", "_train").DisableSound();
}
if (c.trait.CanWhore)
{
Choice2(flag2 ? "daBirdBuy" : "daTailBuy", "_whore");
}
if (c.trait.CanHeal)
{
Choice2("daHeal", "_heal");
}
if (c.trait.CanServeFood)
{
Choice2("daFood", "_food");
}
if (c.trait is TraitInformer)
{
Choice2("daSellFame", "_sellFame");
}
if (EClass._zone.AllowInvest)
{
if (c.trait.CanInvestTown && Guild.GetCurrentGuild() == null)
{
Choice2("daInvest", "_investZone");
}
if (c.trait.CanInvest)
{
Choice2("daInvest", "_investShop");
}
}
if (c.trait.CanIdentify)
{
Choice2("daIdentify", "_identify").DisableSound();
Choice2("daIdentifyAll", "_identifyAll");
Choice2("daIdentifySP", "_identifySP").DisableSound();
}
if (c.trait.CanPicklock)
{
if (c.Evalue(280) < 20)
{
c.elements.SetBase(280, 20);
}
foreach (Thing item11 in EClass.pc.things.List((Thing a) => a.c_lockLv > 0, onlyAccessible: true))
{
Thing _t2 = item11;
Choice2("daPicklock".lang(_t2.Name), "_picklock").SetOnClick(delegate
{
destThing = _t2;
});
}
}
if (c.trait is TraitBanker)
{
Choice2("daDeposit", "_deposit");
}
if (c.IsMaid || (c.trait.CanInvestTown && (EClass._zone.source.faction == "mysilia" || EClass._zone.IsPCFaction)))
{
Choice2("daExtraTax", "_extraTax");
}
if ((c.trait is TraitMiko_Mifu || c.trait is TraitMiko_Nefu || c.trait is TraitEureka) && EClass.world.date.IsExpired(c.c_dateStockExpire))
{
Choice2("daBlessing", "_blessing");
goto IL_099a;
}
goto IL_0d68;
goto IL_09ab;
void BackChill()
{
Method(RumorChill, null, StepDefault);ELEMENT โ
public class ELEMENT
{
public const int difficulty = 765;
public const int purity = 759;
public const int air = 763;
public const int hotspring = 756;
public const int roasted = 762;
public const int blood = 755;
public const int rare = 751;
public const int recharge = 761;
public const int antidote = 753;
public const int cute = 752;
public const int antidote = 753;
public const int rare = 751;
public const int nerve = 754;
public const int comfort = 750;
public const int blood = 755;
public const int roasted = 762;
public const int hotspring = 756;
public const int air = 763;
public const int purity = 759;
public const int difficulty = 765;
public const int stimulant = 760;
public const int recharge = 761;
public const int comfort = 750;
public const int nerve = 754;
public const int _void = 0;
public const int nutrition = 10;
public const int socket = 5;
public const int lv = 1;
public const int d = 3;
public const int socket = 5;
public const int nutrition = 10;
public const int weight = 11;
public const int taste = 18;
public const int poison = 20;
public const int heat = 16;
public const int fire = 21;
public const int cut = 22;
public const int old_detox = 23;
public const int piety = 85;
public const int fire = 21;
public const int poison = 20;
public static readonly int[] IDS = new int[36]
{
765, 763, 762, 751, 752, 753, 754, 755, 756, 759,
760, 761, 750, 0, 10, 1, 2, 3, 5, 11,
12, 13, 14, 15, 17, 18, 20, 16, 22, 23,
24, 25, 26, 29, 85, 21
759, 756, 755, 761, 753, 752, 751, 750, 762, 763,
765, 760, 754, 0, 5, 1, 2, 3, 10, 11,
12, 13, 14, 15, 17, 18, 16, 21, 22, 23,
24, 25, 26, 29, 85, 20
};
}
public class Element : EClassENC โ
public class ENC
{
public const int permaCurse = 656;
public const int onlyPet = 655;
public const int noDamage = 654;
public const int living = 653;
public const int eco = 652;
public const int r_PV = 651;
public const int r_mana = 641;
public const int r_DV = 650;
public const int eco = 652;
public const int absorbHP = 660;
public const int permaCurse = 656;
public const int r_life = 640;
public const int absorbMP = 661;
public const int absorbHP = 660;
public const int convertCold = 851;
public const int absorbSP = 662;
public const int eheluck = 663;
public const int boostMachine = 664;
public const int convertHoly = 864;
public const int convertLightning = 852;
public const int absorbSP = 662;
public const int absorbMP = 661;
public const int mod_feint = 623;
public const int sustain_STR = 440;
public const int convertLightning = 852;
public const int mod_flurry = 621;
public const int encTail = 419;
public const int negatePoison = 420;
public const int negateBlind = 421;
public const int negateParalysis = 422;
public const int negateFear = 423;
public const int parry = 437;
public const int innocence = 418;
public const int knightly = 438;
public const int loving = 417;
public const int negateParry = 439;
public const int seeInvisible = 416;
public const int sustain_STR = 440;
public const int invisibility = 415;
public const int sustain_END = 441;
public const int counter = 380;
public const int sustain_DEX = 442;
public const int sustain_PER = 443;
public const int sustain_LER = 444;
public const int negateBlind = 421;
public const int sustain_WIL = 445;
public const int negatePoison = 420;
public const int innocence = 418;
public const int mod_cleave = 622;
public const int basher = 381;
public const int expMod = 403;
public const int knightly = 438;
public const int weightMod = 404;
public const int slowDecay = 405;
public const int resMutation = 406;
public const int travelSpeed = 407;
public const int throwReturn = 410;
public const int mod_cleave = 622;
public const int encSpell = 411;
public const int slowCorruption = 412;
public const int encHit = 414;
public const int slowDecay = 405;
public const int invisibility = 415;
public const int negateParry = 439;
public const int seeInvisible = 416;
public const int encSpell = 411;
public const int loving = 417;
public const int sustain_END = 441;
public const int encTail = 419;
public const int nonLethal = 485;
public const int sustain_MAG = 446;
public const int counter = 380;
public const int sustain_figure = 450;
public const int mod_talisman = 609;
public const int mod_splash = 608;
public const int mod_scatter = 607;
public const int sustain_CHA = 447;
public const int safetyMeasure = 486;
public const int mod_rapid = 602;
public const int mod_ammo_knockback = 603;
public const int mod_ammo_recover = 604;
public const int mod_precision = 605;
public const int mod_drill = 606;
public const int mod_scatter = 607;
public const int mod_splash = 608;
public const int mod_talisman = 609;
public const int mod_chaser = 620;
public const int nonLethal = 485;
public const int slot_rune = 484;
public const int mod_drill = 606;
public const int optimizeMana = 483;
public const int mod_ammo_knockback = 603;
public const int revealFaith = 481;
public const int bane_dragon = 460;
public const int force_weapon = 482;
public const int sustain_DEX = 442;
public const int sustain_PER = 443;
public const int sustain_LER = 444;
public const int sustain_WIL = 445;
public const int sustain_CHA = 447;
public const int sustain_figure = 450;
public const int bane_dragon = 460;
public const int sustain_MAG = 446;
public const int bane_undead = 461;
public const int bane_fairy = 462;
public const int mod_chaser = 620;
public const int bane_animal = 463;
public const int bane_man = 464;
public const int bane_machine = 465;
public const int revealFaith = 481;
public const int bane_god = 466;
public const int strongStomach = 480;
public const int bane_fish = 467;
public const int bane_machine = 465;
public const int bane_all = 468;
public const int bane_undead = 461;
public const int slot_rune = 484;
public const int strongStomach = 480;
public const int bane_god = 466;
public const int bane_fish = 467;
public static readonly int[] IDS = new int[108]
{
656, 655, 654, 653, 651, 641, 650, 652, 660, 640,
661, 851, 663, 664, 665, 666, 667, 850, 624, 865,
864, 852, 662, 623, 440, 621, 419, 420, 421, 422,
423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
435, 436, 437, 418, 417, 416, 415, 380, 381, 382,
383, 400, 401, 402, 403, 438, 404, 406, 407, 408,
409, 410, 622, 412, 414, 405, 439, 411, 441, 485,
486, 487, 488, 489, 490, 491, 600, 601, 602, 604,
605, 606, 607, 608, 609, 620, 484, 483, 603, 481,
482, 442, 443, 444, 445, 447, 450, 460, 446, 462,
463, 464, 465, 466, 467, 468, 461, 480
655, 654, 653, 652, 651, 641, 650, 656, 640, 660,
851, 662, 663, 664, 665, 666, 667, 850, 624, 865,
864, 661, 623, 852, 621, 422, 423, 424, 425, 426,
427, 428, 429, 430, 431, 432, 435, 436, 437, 438,
439, 440, 441, 442, 443, 444, 421, 445, 420, 418,
622, 381, 382, 383, 400, 401, 402, 403, 404, 405,
406, 407, 408, 409, 410, 411, 412, 414, 415, 416,
417, 419, 446, 380, 450, 609, 608, 607, 447, 486,
487, 488, 489, 490, 491, 600, 601, 602, 603, 604,
605, 485, 606, 483, 460, 482, 461, 462, 620, 463,
464, 481, 480, 465, 468, 484, 466, 467
};
}FACTION โ
public class FACTION
{
public const int bfForest = 3601;
public const int bfSnow = 3602;
public const int bfHill = 3603;
public const int bfSilica = 3802;
public const int bfBeach = 3604;
public const int bfGum = 3803;
public const int bfGeyser = 3701;
public const int fRation = 2207;
public const int bfUndersea = 3606;
public const int actBuildTerrain = 4002;
public const int bfFertile = 3700;
public const int actBuildMine = 4001;
public const int bfPlain = 3600;
public const int actBuildCut = 4000;
public const int bfRuin = 3702;
public const int bfStart = 3900;
public const int bfSea = 3605;
public const int bfIce = 3804;
public const int bfCave = 3500;
public const int bfMushroom = 3801;
public const int fLuck = 2118;
public const int bfChitin = 3805;
public const int fSafety = 2205;
public const int fTaxEvasion = 2119;
public const int fLuck = 2118;
public const int fLoyal = 2117;
public const int fEducation = 2116;
public const int bfTranquil = 3703;
public const int fAdmin = 2115;
public const int fAttraction = 2206;
public const int fConstruction = 2003;
public const int bfVolcano = 3704;
public const int bfCoal = 3800;
public const int actBuildMine = 4001;
public const int bfLandmark5 = 3784;
public const int bfFish = 3706;
public const int fAttraction = 2206;
public const int actBuildInspect = 4006;
public const int bfLandmark3 = 3782;
public const int actBuildRecipe = 4005;
public const int bfLandmark4 = 3783;
public const int actBuildCollect = 4004;
public const int bfHunt = 3705;
public const int actBuildAnywhere = 4003;
public const int bfVolcano = 3704;
public const int actBuildTerrain = 4002;
public const int bfTranquil = 3703;
public const int fAdmin = 2115;
public const int bfFish = 3706;
public const int actBuildCut = 4000;
public const int bfRuin = 3702;
public const int bfStart = 3900;
public const int bfGeyser = 3701;
public const int bfChitin = 3805;
public const int bfFertile = 3700;
public const int bfIce = 3804;
public const int bfUndersea = 3606;
public const int bfGum = 3803;
public const int bfBeach = 3604;
public const int bfSilica = 3802;
public const int bfHill = 3603;
public const int bfMushroom = 3801;
public const int bfSnow = 3602;
public const int bfCoal = 3800;
public const int bfForest = 3601;
public const int bfLandmark5 = 3784;
public const int bfSea = 3605;
public const int bfLandmark4 = 3783;
public const int bfCave = 3500;
public const int bfLandmark3 = 3782;
public const int actBuildInspect = 4006;
public const int bfLandmark2 = 3781;
public const int bfLandmark1 = 3780;
public const int actBuildRecipe = 4005;
public const int bfBreed = 3710;
public const int actBuildCollect = 4004;
public const int bfBasin = 3709;
public const int actBuildAnywhere = 4003;
public const int bfMonster = 3707;
public const int bfFreshAir = 3708;
public const int bfMonster = 3707;
public const int bfBasin = 3709;
public const int bfHunt = 3705;
public const int bfBreed = 3710;
public const int fConstruction = 2003;
public const int bfPlain = 3600;
public const int fRation = 2207;
public const int bfLandmark1 = 3780;
public static readonly int[] IDS = new int[53]
{
3601, 3602, 3603, 3604, 3701, 3606, 3700, 3600, 3702, 3605,
3500, 2118, 2205, 2204, 2203, 2202, 2201, 2200, 2120, 2119,
2117, 2116, 3703, 2206, 3704, 4001, 3706, 4006, 4005, 4004,
4003, 4002, 2115, 4000, 3900, 3805, 3804, 3803, 3802, 3801,
3800, 3784, 3783, 3782, 3781, 3780, 3710, 3709, 3708, 3707,
3705, 2003, 2207
3802, 3803, 2207, 4002, 4001, 4000, 3900, 3804, 3801, 3805,
2205, 2204, 2203, 2202, 2201, 2200, 2120, 2119, 2118, 2117,
2116, 2115, 2003, 3800, 3784, 2206, 3782, 3783, 3705, 3704,
3703, 3706, 3702, 3701, 3700, 3606, 3604, 3603, 3602, 3601,
3605, 3500, 4006, 3781, 4005, 4004, 4003, 3707, 3708, 3709,
3710, 3600, 3780
};
}
public class Faction : EClassFEAT โ
public class FEAT
{
public const int featHeavyEater = 1234;
public const int featPER = 1623;
public const int featSleeper = 1642;
public const int featLER = 1624;
public const int featSorter = 1643;
public const int featMAG = 1625;
public const int featBodyParts = 1644;
public const int featHardy = 1630;
public const int featParty = 1645;
public const int featCHA = 1627;
public const int featLonelySoul = 1646;
public const int featLuck = 1628;
public const int featSummoner = 1647;
public const int featSPD = 1629;
public const int featRapidMagic = 1648;
public const int featEND = 1622;
public const int featResCurse = 1641;
public const int featDefense = 1631;
public const int featDefender = 1649;
public const int featWIL = 1626;
public const int featMagicManner = 1651;
public const int featDEX = 1621;
public const int featRapidArrow = 1652;
public const int featManaMeat = 1421;
public const int featDreamWaker = 1653;
public const int featStamina = 1612;
public const int featHeavyCasting = 1654;
public const int featMana = 1611;
public const int featModelBeliever = 1655;
public const int featLife = 1610;
public const int featScavenger = 1656;
public const int featManyFace = 1429;
public const int featManaCost = 1657;
public const int featMurderer = 1428;
public const int featGourmet = 1650;
public const int featDisguise = 1427;
public const int featChef = 1658;
public const int featNeckHunter = 1426;
public const int featAnimalLover = 1640;
public const int featMimic = 1425;
public const int featMartial = 1635;
public const int featElite = 1424;
public const int featStamina = 1612;
public const int featPeaky = 1423;
public const int featSTR = 1620;
public const int featHealer = 1422;
public const int featDEX = 1621;
public const int featEvade = 1632;
public const int featEND = 1622;
public const int featExecutioner = 1420;
public const int featPER = 1623;
public const int featSTR = 1620;
public const int featLER = 1624;
public const int featSpotting = 1633;
public const int featMAG = 1625;
public const int featDefender = 1649;
public const int featFaith = 1636;
public const int featMartial = 1635;
public const int featWIL = 1626;
public const int featMilitant = 1419;
public const int featLuck = 1628;
public const int featComat = 1750;
public const int featSPD = 1629;
public const int featFastFucker = 1664;
public const int featHardy = 1630;
public const int featFastEater = 1663;
public const int featDefense = 1631;
public const int featGoldenFinger = 1662;
public const int featEvade = 1632;
public const int featDismantler = 1661;
public const int featSpotting = 1633;
public const int featLooter = 1660;
public const int featNegotiate = 1634;
public const int featFisher = 1659;
public const int featCHA = 1627;
public const int featChef = 1658;
public const int featFisher = 1659;
public const int featManaCost = 1657;
public const int featLooter = 1660;
public const int featScavenger = 1656;
public const int featDismantler = 1661;
public const int featModelBeliever = 1655;
public const int featManaPrecision = 1214;
public const int featHeavyCasting = 1654;
public const int featElea = 1213;
public const int featDreamWaker = 1653;
public const int featFairyResist = 1212;
public const int featRapidArrow = 1652;
public const int featSnail = 1211;
public const int featMagicManner = 1651;
public const int featUndead = 1210;
public const int featGourmet = 1650;
public const int featFluffyTail = 1209;
public const int featRapidMagic = 1648;
public const int featFoxLearn = 1208;
public const int featSummoner = 1647;
public const int featDwarf = 1215;
public const int featLonelySoul = 1646;
public const int featFoxBless = 1207;
public const int featParty = 1645;
public const int featCannibalism = 1205;
public const int featBodyParts = 1644;
public const int featFairyWeak = 1204;
public const int featSorter = 1643;
public const int featGrowParts = 1203;
public const int featSleeper = 1642;
public const int featFastLearner = 1202;
public const int featResCurse = 1641;
public const int featManaBond = 1201;
public const int featAnimalLover = 1640;
public const int featSlowFood = 1200;
public const int featFaith = 1636;
public const int featCosmicHorror = 1233;
public const int featNegotiate = 1634;
public const int featMelilithCurse = 1206;
public const int featSwordsage = 1418;
public const int featSuccubus = 1216;
public const int featGod_trickery1 = 1345;
public const int featGolem = 1217;
public const int featInquisitor = 1416;
public const int featMetal = 1218;
public const int featHeavyEater = 1234;
public const int featGoldenFinger = 1662;
public const int featLightEater = 1235;
public const int featFastEater = 1663;
public const int featNorland = 1236;
public const int featFastFucker = 1664;
public const int featRoran = 1237;
public const int featComat = 1750;
public const int featElder = 1238;
public const int featBaby = 1232;
public const int featDemon = 1239;
public const int featNirvana = 1231;
public const int featMassSummoner = 1240;
public const int featAdam = 1230;
public const int featMeatCushion = 1241;
public const int featDemigod = 1228;
public const int featGeneSlot = 1242;
public const int featServant = 1227;
public const int featEternalYouth = 1243;
public const int featUnderground = 1226;
public const int featCentaur = 1244;
public const int featLoyal = 1225;
public const int featSevenSense = 1245;
public const int featShiva = 1224;
public const int featPegasus = 1246;
public const int featAcidBody = 1223;
public const int featLibra = 1247;
public const int featSplit = 1222;
public const int featMiscreation = 1248;
public const int featSpike = 1221;
public const int featBloodBond = 1249;
public const int featFate = 1220;
public const int featVampire = 1250;
public const int featElderCrab = 1219;
public const int featAshborn = 1251;
public const int featMana = 1611;
public const int featAquatic = 1252;
public const int featLife = 1610;
public const int featCancer = 1253;
public const int featLittleOne = 1229;
public const int featWitch = 1417;
public const int featWizard = 1402;
public const int featBadKarma = 1271;
public const int featPaladin2 = 1408;
public const int featPeacemaker = 1272;
public const int featBoost = 1409;
public const int featBloom = 1273;
public const int featReboot = 1410;
public const int featSlimeEvolution = 1274;
public const int featEarthStrength = 1411;
public const int featBelovedOne = 1275;
public const int featLuckyCat = 1412;
public const int featHarem = 1276;
public const int featFairysan = 1413;
public const int featGoddess = 1290;
public const int featWhiteVixen = 1414;
public const int featSadCreature = 1291;
public const int featFoxMaid = 1415;
public const int featCosmicHorror = 1233;
public const int featInquisitor = 1416;
public const int featBaby = 1232;
public const int featWitch = 1417;
public const int featNirvana = 1231;
public const int featSwordsage = 1418;
public const int featAdam = 1230;
public const int featMilitant = 1419;
public const int featSlowFood = 1200;
public const int featExecutioner = 1420;
public const int featManaBond = 1201;
public const int featManaMeat = 1421;
public const int featFastLearner = 1202;
public const int featHealer = 1422;
public const int featGrowParts = 1203;
public const int featPeaky = 1423;
public const int featFairyWeak = 1204;
public const int featElite = 1424;
public const int featCannibalism = 1205;
public const int featPaladin = 1407;
public const int featMelilithCurse = 1206;
public const int featTourist = 1406;
public const int featFoxBless = 1207;
public const int featPianist = 1405;
public const int featFoxLearn = 1208;
public const int featArcher = 1404;
public const int featFluffyTail = 1209;
public const int featSadCreature = 1291;
public const int featUndead = 1210;
public const int featGod_element1 = 1300;
public const int featSnail = 1211;
public const int featGod_earth1 = 1305;
public const int featFairyResist = 1212;
public const int featLightEater = 1235;
public const int featElea = 1213;
public const int featGod_wind1 = 1310;
public const int featGod_element1 = 1300;
public const int featGod_machine1 = 1315;
public const int featManaPrecision = 1214;
public const int featGod_healing1 = 1320;
public const int featSuccubus = 1216;
public const int featGod_harvest1 = 1325;
public const int featGolem = 1217;
public const int featMimic = 1425;
public const int featMetal = 1218;
public const int featGod_luck1 = 1330;
public const int featElderCrab = 1219;
public const int featGod_oblivion1 = 1340;
public const int featFate = 1220;
public const int featGod_trickery1 = 1345;
public const int featSpike = 1221;
public const int featGod_moonshadow1 = 1350;
public const int featSplit = 1222;
public const int featGod_strife1 = 1355;
public const int featAcidBody = 1223;
public const int featWarrior = 1400;
public const int featShiva = 1224;
public const int featThief = 1401;
public const int featLoyal = 1225;
public const int featBelovedOne = 1275;
public const int featUnderground = 1226;
public const int featFarmer = 1403;
public const int featServant = 1227;
public const int featGod_harmony1 = 1335;
public const int featDemigod = 1228;
public const int featGoddess = 1290;
public const int featLittleOne = 1229;
public const int featNeckHunter = 1426;
public const int featDwarf = 1215;
public const int featMurderer = 1428;
public const int featGod_earth1 = 1305;
public const int featElder = 1238;
public const int featGoodKarma = 1270;
public const int featDemon = 1239;
public const int featGod_machine1 = 1315;
public const int featMassSummoner = 1240;
public const int featWhiteVixen = 1414;
public const int featMeatCushion = 1241;
public const int featFairysan = 1413;
public const int featGeneSlot = 1242;
public const int featLuckyCat = 1412;
public const int featEternalYouth = 1243;
public const int featEarthStrength = 1411;
public const int featCentaur = 1244;
public const int featReboot = 1410;
public const int featSevenSense = 1245;
public const int featBoost = 1409;
public const int featPegasus = 1246;
public const int featPaladin2 = 1408;
public const int featLibra = 1247;
public const int featPaladin = 1407;
public const int featMiscreation = 1248;
public const int featTourist = 1406;
public const int featBloodBond = 1249;
public const int featGod_wind1 = 1310;
public const int featVampire = 1250;
public const int featPianist = 1405;
public const int featAshborn = 1251;
public const int featArcher = 1404;
public const int featAquatic = 1252;
public const int featFarmer = 1403;
public const int featCancer = 1253;
public const int featWizard = 1402;
public const int featGoodKarma = 1270;
public const int featThief = 1401;
public const int featRoran = 1237;
public const int featWarrior = 1400;
public const int featDisguise = 1427;
public const int featGod_strife1 = 1355;
public const int featNorland = 1236;
public const int featGod_moonshadow1 = 1350;
public const int featHarem = 1276;
public const int featGod_oblivion1 = 1340;
public const int featManyFace = 1429;
public const int featGod_harmony1 = 1335;
public const int featSlimeEvolution = 1274;
public const int featGod_luck1 = 1330;
public const int featBloom = 1273;
public const int featGod_harvest1 = 1325;
public const int featPeacemaker = 1272;
public const int featGod_healing1 = 1320;
public const int featBadKarma = 1271;
public const int featFoxMaid = 1415;
public static readonly int[] IDS = new int[151]
{
1234, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1641, 1649,
1651, 1652, 1653, 1654, 1655, 1656, 1657, 1650, 1658, 1640,
1635, 1612, 1620, 1621, 1622, 1623, 1624, 1625, 1636, 1626,
1628, 1629, 1630, 1631, 1632, 1633, 1634, 1627, 1659, 1660,
1661, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1215, 1207,
1205, 1204, 1203, 1202, 1201, 1200, 1233, 1206, 1216, 1217,
1218, 1662, 1663, 1664, 1750, 1232, 1231, 1230, 1228, 1227,
1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1611, 1610,
1229, 1402, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415,
1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1407,
1406, 1405, 1404, 1291, 1300, 1305, 1235, 1310, 1315, 1320,
1325, 1425, 1330, 1340, 1345, 1350, 1355, 1400, 1401, 1275,
1403, 1335, 1290, 1426, 1428, 1238, 1239, 1240, 1241, 1242,
1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252,
1253, 1270, 1237, 1427, 1236, 1276, 1429, 1274, 1273, 1272,
1271
1623, 1624, 1625, 1630, 1627, 1628, 1629, 1622, 1631, 1626,
1621, 1421, 1612, 1611, 1610, 1429, 1428, 1427, 1426, 1425,
1424, 1423, 1422, 1632, 1420, 1620, 1633, 1649, 1635, 1419,
1750, 1664, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656,
1655, 1654, 1653, 1652, 1651, 1650, 1648, 1647, 1646, 1645,
1644, 1643, 1642, 1641, 1640, 1636, 1634, 1418, 1345, 1416,
1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243,
1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253,
1417, 1271, 1272, 1273, 1274, 1275, 1276, 1290, 1291, 1233,
1232, 1231, 1230, 1200, 1201, 1202, 1203, 1204, 1205, 1206,
1207, 1208, 1209, 1210, 1211, 1212, 1213, 1300, 1214, 1216,
1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226,
1227, 1228, 1229, 1215, 1305, 1270, 1315, 1414, 1413, 1412,
1411, 1410, 1409, 1408, 1407, 1406, 1310, 1405, 1404, 1403,
1402, 1401, 1400, 1355, 1350, 1340, 1335, 1330, 1325, 1320,
1415
};
}
public class Feat : ElementFOOD โ
public class FOOD
{
public const int creativeDish = 764;
public const int food_human = 708;
public const int justcooked = 757;
public const int food_CHA = 700;
public const int food_cat = 701;
public const int creativeDish = 764;
public const int food_god = 758;
public const int food_poison = 702;
public const int food_love = 703;
public const int food_bug = 704;
public const int gainWeight = 705;
public const int food_poison = 702;
public const int loseWeight = 706;
public const int kirimi = 707;
public const int food_human = 708;
public const int food_undead = 709;
public const int food_blood = 710;
public const int justcooked = 757;
public const int food_love = 703;
public const int food_god = 758;
public const int gainWeight = 705;
public static readonly int[] IDS = new int[14]
{
700, 701, 764, 702, 704, 705, 706, 707, 708, 709,
710, 757, 703, 758
764, 708, 757, 700, 701, 758, 703, 704, 702, 706,
707, 709, 710, 705
};
}GoalCombat โ
public override IEnumerable<Status> Run()
}
owner.calmCheckTurn--;
}
string text = owner.id;
if ((text == "big_daddy" || text == "big_daddy2") && !owner.IsPCFactionOrMinion)
{
foreach (Chara chara in EClass._map.charas)
{
if (!chara.IsPCFaction && !chara.IsInCombat && chara != owner)
{
chara.GoHostile(tc);
}
}
}
if (owner.IsPC)
{
CursorSystem.ignoreCount = 1;public override IEnumerable<Status> Run()
yield return Success();
}
idleCount = 0;
string aiIdle = owner.source.aiIdle;
if (aiIdle == "stand" || aiIdle == "root")
text = owner.source.aiIdle;
if (text == "stand" || text == "root")
{
yield return Success();
}HitSummary โ
{
BuildMenu.Instance.info1.lastMats[recipe.id] = recipe.ingredients[0].mat;
}
if (!recipe.tileType.CanInstaComplete && !EClass.player.instaComplete)
if ((!recipe.tileType.CanInstaComplete && !EClass.player.instaComplete) || recipe.GetIdThing() == "deco")
{
return;
}MUTATION โ
public class MUTATION
{
public const int mutationSpeedN = 1519;
public const int mutationStr = 1520;
public const int mutationDexN = 1515;
public const int mutationSkin = 1510;
public const int etherEye = 1553;
public const int mutationSkinN = 1511;
public const int etherFeet = 1552;
public const int mutationEye = 1512;
public const int etherGravity = 1550;
public const int mutationEyeN = 1513;
public const int mutationHairN = 1533;
public const int mutationDex = 1514;
public const int mutationHair = 1532;
public const int mutationRegen = 1516;
public const int mutationBodyN = 1531;
public const int mutationStr = 1520;
public const int mutationBody = 1530;
public const int mutationSpeed = 1518;
public const int etherWing = 1554;
public const int etherPoisonHand = 1565;
public const int mutationLightningN = 1529;
public const int etherManaBattery = 1564;
public const int mutationColdN = 1527;
public const int etherProvoke = 1563;
public const int mutationCold = 1526;
public const int etherArmor = 1562;
public const int mutationBrainN = 1525;
public const int etherStupid = 1561;
public const int mutationBrain = 1524;
public const int etherWeak = 1560;
public const int mutationChaN = 1523;
public const int etherAddict = 1559;
public const int mutationCha = 1522;
public const int etherRain = 1558;
public const int mutationStrN = 1521;
public const int etherHead = 1557;
public const int mutationLightning = 1528;
public const int etherViolence = 1556;
public const int etherNeck = 1555;
public const int etherUgly = 1551;
public const int etherWing = 1554;
public const int etherHead = 1557;
public const int mutationRegenN = 1517;
public const int mutationSkinN = 1511;
public const int etherFeet = 1552;
public const int mutationEye = 1512;
public const int etherUgly = 1551;
public const int mutationEyeN = 1513;
public const int etherEye = 1553;
public const int mutationDex = 1514;
public const int mutationChaN = 1523;
public const int etherViolence = 1556;
public const int mutationSpeedN = 1519;
public const int mutationRegen = 1516;
public const int mutationStrN = 1521;
public const int mutationRegenN = 1517;
public const int mutationCha = 1522;
public const int mutationSpeed = 1518;
public const int etherGravity = 1550;
public const int mutationDexN = 1515;
public const int mutationBrain = 1524;
public const int etherManaBattery = 1564;
public const int mutationBrainN = 1525;
public const int etherProvoke = 1563;
public const int mutationCold = 1526;
public const int etherArmor = 1562;
public const int mutationLightning = 1528;
public const int etherStupid = 1561;
public const int mutationLightningN = 1529;
public const int etherWeak = 1560;
public const int mutationBody = 1530;
public const int etherAddict = 1559;
public const int mutationBodyN = 1531;
public const int etherRain = 1558;
public const int mutationHair = 1532;
public const int etherPoisonHand = 1565;
public const int mutationHairN = 1533;
public const int mutationColdN = 1527;
public static readonly int[] IDS = new int[40]
{
1519, 1520, 1510, 1553, 1552, 1550, 1533, 1532, 1531, 1530,
1554, 1529, 1527, 1526, 1525, 1524, 1523, 1522, 1521, 1528,
1555, 1551, 1557, 1511, 1512, 1513, 1514, 1556, 1516, 1517,
1518, 1515, 1564, 1563, 1562, 1561, 1560, 1559, 1558, 1565
1515, 1510, 1511, 1512, 1513, 1514, 1516, 1520, 1518, 1565,
1564, 1563, 1562, 1561, 1560, 1559, 1558, 1557, 1556, 1555,
1554, 1517, 1552, 1551, 1553, 1523, 1519, 1521, 1522, 1550,
1524, 1525, 1526, 1528, 1529, 1530, 1531, 1532, 1533, 1527
};
}
public class Mutation : FeatMap โ
public void Save(string path, ZoneExportData export = null, PartialMap partial =
byte[] array17 = new byte[num5];
byte[] array18 = new byte[num5];
byte[] array19 = new byte[num5];
byte[] array20 = new byte[num5];
byte[] array21 = new byte[num5];
cellEffects.Clear();
int num6 = 0;
for (int i = num; i < num + num3; i++)public void Save(string path, ZoneExportData export = null, PartialMap partial =
array5[num6] = cell._floorMat;
array4[num6] = cell._floor;
array6[num6] = cell.obj;
array20[num6] = cell._deco;
array21[num6] = cell._decoMat;
array7[num6] = cell.objMat;
array8[num6] = cell.decal;
array9[num6] = cell._dirs;public void Save(string path, ZoneExportData export = null, PartialMap partial =
Write(path + "roofBlocks", array18);
Write(path + "roofBlockMats", array19);
Write(path + "roofBlockDirs", array17);
Write(path + "decos", array20);
Write(path + "decoMats", array21);
things.Sort((Thing a, Thing b) => a.stackOrder - b.stackOrder);
if (export == null)
{public void Load(string path, bool import = false, PartialMap partial = null)
byte[] bytes7 = TryLoad("objs");
byte[] bytes8 = TryLoad("objMats");
byte[] bytes9 = TryLoad("decal");
byte[] bytes10 = TryLoad("dirs");
byte[] bytes11 = TryLoad("flags");
byte[] bytes12 = TryLoad("flags2");
byte[] bytes13 = TryLoad("heights");
byte[] bytes14 = TryLoad("bridges");
byte[] bytes15 = TryLoad("bridgeMats");
byte[] bytes16 = TryLoad("bridgeHeights");
byte[] bytes17 = TryLoad("bridgePillars");
byte[] bytes18 = TryLoad("roofBlocks");
byte[] bytes19 = TryLoad("roofBlockMats");
byte[] bytes20 = TryLoad("roofBlockDirs");
if (bytes17.Length < size)
{
bytes17 = new byte[size];
byte[] bytes10 = TryLoad("decos");
byte[] bytes11 = TryLoad("decoMats");
byte[] bytes12 = TryLoad("dirs");
byte[] bytes13 = TryLoad("flags");
byte[] bytes14 = TryLoad("flags2");
byte[] bytes15 = TryLoad("heights");
byte[] bytes16 = TryLoad("bridges");
byte[] bytes17 = TryLoad("bridgeMats");
byte[] bytes18 = TryLoad("bridgeHeights");
byte[] bytes19 = TryLoad("bridgePillars");
byte[] bytes20 = TryLoad("roofBlocks");
byte[] bytes21 = TryLoad("roofBlockMats");
byte[] bytes22 = TryLoad("roofBlockDirs");
if (bytes19.Length < size)
{
bytes19 = new byte[size];
}
if (bytes2.Length < size)
{
bytes2 = new byte[size];
}
if (bytes12.Length < size)
if (bytes14.Length < size)
{
bytes12 = new byte[size];
bytes14 = new byte[size];
}
Validate(ref bytes2, "objVals");
Validate(ref bytes3, "blockMats");public void Load(string path, bool import = false, PartialMap partial = null)
Validate(ref bytes7, "objs");
Validate(ref bytes8, "objMats");
Validate(ref bytes9, "decal");
Validate(ref bytes10, "dirs");
Validate(ref bytes11, "flags");
Validate(ref bytes12, "flags2");
Validate(ref bytes13, "heights");
Validate(ref bytes14, "bridges");
Validate(ref bytes15, "bridgeMats");
Validate(ref bytes16, "bridgeHeights");
Validate(ref bytes17, "bridgePillars");
Validate(ref bytes18, "roofBlocks");
Validate(ref bytes19, "roofBlockMats");
Validate(ref bytes20, "roofBlockDirs");
Validate(ref bytes10, "decos");
Validate(ref bytes11, "decoMats");
Validate(ref bytes12, "dirs");
Validate(ref bytes13, "flags");
Validate(ref bytes14, "flags2");
Validate(ref bytes15, "heights");
Validate(ref bytes16, "bridges");
Validate(ref bytes17, "bridgeMats");
Validate(ref bytes18, "bridgeHeights");
Validate(ref bytes19, "bridgePillars");
Validate(ref bytes20, "roofBlocks");
Validate(ref bytes21, "roofBlockMats");
Validate(ref bytes22, "roofBlockDirs");
int count = EClass.sources.floors.rows.Count;
int count2 = EClass.sources.materials.rows.Count;
int num3 = 0;public void Load(string path, bool import = false, PartialMap partial = null)
obj = bytes7[num3],
objMat = bytes8[num3],
decal = bytes9[num3],
_dirs = bytes10[num3],
height = bytes13[num3],
_bridge = bytes14[num3],
_bridgeMat = bytes15[num3],
bridgeHeight = bytes16[num3],
bridgePillar = bytes17[num3],
_roofBlock = bytes18[num3],
_roofBlockMat = bytes19[num3],
_roofBlockDir = bytes20[num3],
isSeen = bytes11[num3].GetBit(1),
isHarvested = bytes11[num3].GetBit(2),
impassable = bytes11[num3].GetBit(3),
isModified = bytes11[num3].GetBit(4),
isClearSnow = bytes11[num3].GetBit(5),
isForceFloat = bytes11[num3].GetBit(6),
isToggleWallPillar = bytes11[num3].GetBit(7),
isWatered = bytes12[num3].GetBit(0),
isObjDyed = bytes12[num3].GetBit(1),
crossWall = bytes12[num3].GetBit(2)
_deco = bytes10[num3],
_decoMat = bytes11[num3],
_dirs = bytes12[num3],
height = bytes15[num3],
_bridge = bytes16[num3],
_bridgeMat = bytes17[num3],
bridgeHeight = bytes18[num3],
bridgePillar = bytes19[num3],
_roofBlock = bytes20[num3],
_roofBlockMat = bytes21[num3],
_roofBlockDir = bytes22[num3],
isSeen = bytes13[num3].GetBit(1),
isHarvested = bytes13[num3].GetBit(2),
impassable = bytes13[num3].GetBit(3),
isModified = bytes13[num3].GetBit(4),
isClearSnow = bytes13[num3].GetBit(5),
isForceFloat = bytes13[num3].GetBit(6),
isToggleWallPillar = bytes13[num3].GetBit(7),
isWatered = bytes14[num3].GetBit(0),
isObjDyed = bytes14[num3].GetBit(1),
crossWall = bytes14[num3].GetBit(2)
});
if (cell._bridge >= count)
{public void SetFloor(int x, int z, int idMat, int idFloor, int dir)
RefreshNeighborTiles(x, z);
}
public void SetDeco(int x, int z, int idMat, int idDeco)
{
Cell cell = cells[x, z];
cell._decoMat = (byte)idMat;
cell._deco = (byte)idDeco;
RefreshNeighborTiles(x, z);
}
public void SetBridge(int x, int z, int height = 0, int idMat = 0, int idBridge = 0, int dir = 0, byte idPillar = 0)
{
Cell cell = cells[x, z];POLICY โ
public class POLICY
{
public const int celeb = 2822;
public const int license_stolen = 2824;
public const int legendary_exhibition = 2823;
public const int license_stolen = 2824;
public const int milk_fan = 2825;
public const int celeb = 2822;
public const int breed_season = 2827;
public const int license_slaver = 2828;
public const int egg_fan = 2826;
public const int breed_season = 2827;
public const int legendary_heirloom = 2821;
public const int milk_fan = 2825;
public const int wealth_tax = 2500;
public const int license_general = 2820;
public const int license_furniture = 2819;
public const int forcePanty = 2712;
public const int trash_sort = 2701;
public const int license_food = 2818;
public const int energy_conservation = 2700;
public const int speed_growth = 2516;
public const int resident_wanted = 2513;
public const int inquisition = 2507;
public const int resident_tax = 2512;
public const int license_furniture = 2819;
public const int self_sufficient = 2511;
public const int wealth_tax = 2500;
public const int trash_no = 2702;
public const int faith_tax = 2501;
public const int ban_radio = 2510;
public const int food_for_people = 2502;
public const int nocturnal_life = 2508;
public const int prohibition = 2503;
public const int inquisition = 2507;
public const int human_right = 2506;
public const int impressment = 2504;
public const int legal_drug = 2505;
public const int prohibition = 2503;
public const int resident_tax = 2512;
public const int food_for_people = 2502;
public const int self_sufficient = 2511;
public const int faith_tax = 2501;
public const int ban_radio = 2510;
public const int license_general = 2820;
public const int vaccination = 2509;
public const int nocturnal_life = 2508;
public const int energy_conservation = 2700;
public const int weed_no = 2703;
public const int trash_sort = 2701;
public const int legal_drug = 2505;
public const int human_right = 2506;
public const int taxTransfer = 2705;
public const int weed_no = 2703;
public const int border_watch = 2704;
public const int trash_no = 2702;
public const int license_food = 2818;
public const int noMother = 2710;
public const int store_premium = 2817;
public const int incomeTransfer = 2711;
public const int platinum_ticket = 2815;
public const int livestock_priv = 2715;
public const int mass_exhibition = 2814;
public const int home_discount = 2800;
public const int suite_room = 2813;
public const int open_business = 2810;
public const int bed_quality = 2812;
public const int tourist_safety = 2811;
public const int bed_quality = 2812;
public const int open_business = 2810;
public const int suite_room = 2813;
public const int store_ripoff = 2816;
public const int noAnimal = 2709;
public const int livestock_priv = 2715;
public const int platinum_ticket = 2815;
public const int forcePanty = 2712;
public const int store_ripoff = 2816;
public const int incomeTransfer = 2711;
public const int store_premium = 2817;
public const int noMother = 2710;
public const int noAnimal = 2709;
public const int noDM = 2708;
public const int home_discount = 2800;
public const int auto_farm = 2707;
public const int demon_invocation = 2706;
public const int taxTransfer = 2705;
public const int border_watch = 2704;
public const int mass_exhibition = 2814;
public static readonly int[] IDS = new int[51]
{
2822, 2823, 2824, 2828, 2826, 2827, 2821, 2825, 2820, 2712,
2818, 2516, 2515, 2514, 2513, 2507, 2819, 2500, 2501, 2502,
2503, 2504, 2505, 2512, 2511, 2510, 2509, 2508, 2700, 2701,
2506, 2703, 2702, 2710, 2711, 2715, 2800, 2810, 2811, 2812,
2813, 2709, 2815, 2816, 2817, 2708, 2707, 2706, 2705, 2704,
2814
2824, 2823, 2825, 2822, 2827, 2828, 2826, 2821, 2500, 2819,
2701, 2700, 2516, 2515, 2514, 2513, 2512, 2511, 2702, 2510,
2508, 2507, 2506, 2504, 2503, 2502, 2501, 2820, 2509, 2703,
2505, 2705, 2704, 2818, 2817, 2815, 2814, 2813, 2812, 2811,
2810, 2816, 2715, 2712, 2711, 2710, 2709, 2708, 2800, 2707,
2706
};
}
public class Policy : EClassPoint โ
}
}
public bool IsFarmField => (HasBridge ? sourceBridge : sourceFloor).alias == "field";
public bool IsFarmField => (HasBridge ? sourceBridge : sourceFloor).Category.id == "floor_field";
public bool IsWater => cell.IsTopWater;Recipe โ
public virtual int GetRefVal()
{
return (source.row as SourceFloor.Row).id;
}
if (source.row is SourceDeco.Row)
{
return (source.row as SourceDeco.Row).id;
}
if (source.row is SourceObj.Row)
{
return (source.row as SourceObj.Row).id;public virtual string GetIdThing()
}
return "platform";
}
if (source.row is SourceDeco.Row)
{
return "deco";
}
if (source.row is SourceObj.Row)
{
return "obj";public virtual void OnChangeIngredient()
public virtual Thing Craft(BlessedState blessed, bool sound = false, List<Thing> ings = null, TraitCrafter crafter = null, bool model = false)
{
Thing thing = null;
string type = source.type;
thing = ((type == "Block") ? ThingGen.CreateBlock(tileRow.id, GetMainMaterial().id) : ((!(type == "Obj")) ? ThingGen.CreateFloor(tileRow.id, GetMainMaterial().id, source.isBridge) : ThingGen.CreateObj(tileRow.id, GetMainMaterial().id)));
thing = source.type switch
{
"Block" => ThingGen.CreateBlock(tileRow.id, GetMainMaterial().id),
"Obj" => ThingGen.CreateObj(tileRow.id, GetMainMaterial().id),
"Deco" => ThingGen.CreateDeco(tileRow.id, GetMainMaterial().id),
_ => ThingGen.CreateFloor(tileRow.id, GetMainMaterial().id, source.isBridge),
};
if (thing == null)
{
return null;public virtual void Build(Chara chara, Card t, Point pos, int mat, int dir, int
}
EClass._map.SetFloor(pos.x, pos.z, mat, tileRow.id, dir);
break;
case "Deco":
EClass._map.SetDeco(pos.x, pos.z, mat, (pos.cell._deco == 0) ? tileRow.id : 0);
break;
case "Bridge":
{
if (pos.sourceObj.tileType.RemoveOnFloorChange)RecipeManager โ
public static void BuildList()
Create(row4, "Bridge", "-b");
}
}
foreach (SourceObj.Row row5 in EClass.sources.objs.rows)
foreach (SourceDeco.Row row5 in EClass.sources.decos.rows)
{
Create(row5, "Obj");
Create(row5, "Deco");
}
foreach (SourceCellEffect.Row row6 in EClass.sources.cellEffects.rows)
foreach (SourceObj.Row row6 in EClass.sources.objs.rows)
{
Create(row6, "Liquid");
Create(row6, "Obj");
}
foreach (SourceCellEffect.Row row7 in EClass.sources.cellEffects.rows)
{
Create(row7, "Liquid");
}
rebuild = false;
}SKILL โ
public class SKILL
{
public const int armorLight = 120;
public const int fireproof = 50;
public const int marksman = 133;
public const int throwing = 108;
public const int tactics = 132;
public const int weaponCrossbow = 109;
public const int twowield = 131;
public const int climbing = 242;
public const int twohand = 130;
public const int weaponBlunt = 111;
public const int shield = 123;
public const int armorHeavy = 122;
public const int tactics = 132;
public const int weaponScythe = 110;
public const int twohand = 130;
public const int weaponBlunt = 111;
public const int music = 241;
public const int weaponCrossbow = 109;
public const int travel = 240;
public const int throwing = 108;
public const int taming = 237;
public const int weaponDagger = 107;
public const int milking = 235;
public const int eyeofmind = 134;
public const int digging = 230;
public const int weaponPolearm = 106;
public const int parasite = 227;
public const int armorLight = 120;
public const int riding = 226;
public const int strategy = 135;
public const int mining = 220;
public const int parasite = 227;
public const int shield = 123;
public const int evasionPlus = 151;
public const int spotting = 210;
public const int stealth = 152;
public const int swimming = 200;
public const int stealth = 152;
public const int weightlifting = 207;
public const int evasionPlus = 151;
public const int spotting = 210;
public const int evasion = 150;
public const int mining = 220;
public const int strategy = 135;
public const int lumberjack = 225;
public const int eyeofmind = 134;
public const int riding = 226;
public const int marksman = 133;
public const int digging = 230;
public const int twowield = 131;
public const int milking = 235;
public const int weightlifting = 207;
public const int taming = 237;
public const int lumberjack = 225;
public const int travel = 240;
public const int antiMagic = 93;
public const int music = 241;
public const int weaponPolearm = 106;
public const int weaponGun = 105;
public const int END = 71;
public const int evasion = 150;
public const int STR = 70;
public const int weaponBow = 104;
public const int FPV = 68;
public const int DMG = 67;
public const int weaponAxe = 102;
public const int HIT = 66;
public const int fireproof = 50;
public const int PV = 65;
public const int acidproof = 51;
public const int DEX = 72;
public const int PDR = 55;
public const int DV = 64;
public const int EDR = 56;
public const int mana = 61;
public const int evasionPerfect = 57;
public const int life = 60;
public const int evasionPerfect = 57;
public const int mana = 61;
public const int EDR = 56;
public const int vigor = 62;
public const int PDR = 55;
public const int DV = 64;
public const int acidproof = 51;
public const int PV = 65;
public const int vigor = 62;
public const int DMG = 67;
public const int PER = 73;
public const int climbing = 242;
public const int LER = 74;
public const int STR = 70;
public const int WIL = 75;
public const int END = 71;
public const int weaponGun = 105;
public const int weaponStaff = 103;
public const int weaponBow = 104;
public const int DEX = 72;
public const int weaponStaff = 103;
public const int LER = 74;
public const int weaponAxe = 102;
public const int WIL = 75;
public const int weaponSword = 101;
public const int MAG = 76;
public const int martial = 100;
public const int CHA = 77;
public const int dmgDealt = 94;
public const int LUC = 78;
public const int penetration = 92;
public const int SPD = 79;
public const int vopal = 91;
public const int INT = 80;
public const int critical = 90;
public const int INT = 80;
public const int vopal = 91;
public const int SPD = 79;
public const int penetration = 92;
public const int LUC = 78;
public const int antiMagic = 93;
public const int CHA = 77;
public const int dmgDealt = 94;
public const int MAG = 76;
public const int martial = 100;
public const int weaponDagger = 107;
public const int weaponSword = 101;
public const int PER = 73;
public const int fishing = 245;
public const int weaponScythe = 110;
public const int HIT = 66;
public const int carpentry = 255;
public const int resAcid = 963;
public const int resCut = 964;
public const int gathering = 250;
public const int resCurse = 972;
public const int resDamage = 971;
public const int resImpact = 965;
public const int resCut = 964;
public const int gathering = 250;
public const int resPoison = 955;
public const int eleMind = 914;
public const int building = 288;
public const int cooking = 287;
public const int eleDarkness = 913;
public const int farming = 286;
public const int reading = 285;
public const int negotiation = 291;
public const int investing = 292;
public const int farming = 286;
public const int cooking = 287;
public const int regeneration = 300;
public const int eleCold = 911;
public const int eleFire = 910;
public const int env = 313;
public const int fun = 312;
public const int disarmTrap = 293;
public const int hygine = 310;
public const int eleFire = 910;
public const int bladder = 311;
public const int eleCold = 911;
public const int faith = 306;
public const int hygine = 310;
public const int meditation = 301;
public const int fun = 312;
public const int controlmana = 302;
public const int memorization = 307;
public const int magicDevice = 305;
public const int casting = 304;
public const int manaCapacity = 303;
public const int casting = 304;
public const int controlmana = 302;
public const int memorization = 307;
public const int meditation = 301;
public const int faith = 306;
public const int bladder = 311;
public static readonly int[] IDS = new int[134]
{
120, 50, 108, 109, 242, 111, 122, 132, 130, 241,
240, 237, 235, 230, 227, 226, 220, 123, 210, 200,
152, 151, 150, 135, 134, 133, 131, 207, 225, 93,
106, 71, 70, 68, 67, 66, 65, 72, 64, 61,
60, 57, 56, 55, 51, 62, 73, 74, 75, 105,
104, 103, 102, 101, 100, 94, 92, 91, 90, 80,
79, 78, 77, 76, 107, 245, 110, 255, 916, 917,
133, 132, 131, 130, 123, 122, 110, 111, 109, 108,
107, 134, 106, 120, 135, 227, 151, 152, 200, 207,
210, 220, 225, 226, 230, 235, 237, 240, 241, 105,
150, 104, 68, 102, 50, 51, 55, 56, 57, 60,
61, 62, 64, 65, 67, 242, 70, 71, 103, 72,
74, 75, 76, 77, 78, 79, 80, 90, 91, 92,
93, 94, 100, 101, 73, 245, 66, 255, 916, 917,
918, 919, 921, 922, 923, 924, 925, 926, 950, 951,
952, 953, 915, 954, 956, 957, 958, 959, 960, 961,
962, 963, 964, 250, 972, 971, 970, 965, 955, 914,
920, 912, 290, 289, 288, 287, 913, 285, 291, 281,
261, 260, 259, 258, 257, 256, 280, 292, 286, 300,
911, 910, 313, 312, 293, 310, 311, 306, 301, 302,
305, 303, 304, 307
962, 963, 972, 971, 970, 965, 964, 250, 955, 914,
920, 912, 290, 289, 288, 913, 286, 285, 291, 281,
261, 260, 259, 258, 257, 256, 280, 292, 287, 300,
313, 293, 910, 911, 310, 312, 307, 305, 304, 303,
302, 301, 306, 311
};
}
public class Skill : ElementSLOT โ
public const int hand = 35;
public const int foot = 39;
public const int finger = 36;
public const int waist = 37;
public const int foot = 39;
public const int leg = 38;
public const int lightsource = 45;
public const int torso = 32;
public const int leg = 38;
public const int neck = 31;
public const int ammo = 42;
public static readonly int[] IDS = new int[16]
{
33, 34, 35, 36, 37, 39, 45, 40, 44, 41,
43, 32, 38, 31, 42, 30
33, 34, 35, 39, 36, 37, 38, 45, 40, 44,
41, 43, 32, 31, 42, 30
};
}SPELL โ
public class SPELL
{
public const int hand_Impact = 50415;
public const int ball_Impact = 50115;
public const int flare_Sound = 51207;
public const int puddle_Sound = 50907;
public const int sword_Void = 51016;
public const int weapon_Sound = 50807;
public const int miasma_Sound = 50707;
public const int bolt_Sound = 50307;
public const int hand_Void = 50416;
public const int arrow_Void = 50516;
public const int ball_Sound = 50107;
public const int flare_Nether = 51206;
public const int ball_Nerve = 50108;
public const int bolt_Void = 50316;
public const int hand_Void = 50416;
public const int bolt_Nerve = 50308;
public const int ball_Holy = 50109;
public const int bolt_Void = 50316;
public const int bolt_Holy = 50309;
public const int hand_Holy = 50409;
public const int arrow_Holy = 50509;
public const int funnel_Holy = 50609;
public const int flare_Nether = 51206;
public const int bit_Nether = 51106;
public const int sword_Nether = 51006;
public const int puddle_Nether = 50906;
public const int arrow_Void = 50516;
public const int funnel_Void = 50616;
public const int hand_Poison = 50405;
public const int flare_Mind = 51204;
public const int sword_Void = 51016;
public const int bolt_Mind = 50304;
public const int arrow_Poison = 50505;
public const int sword_Mind = 51004;
public const int miasma_Holy = 50709;
public const int funnel_Holy = 50609;
public const int funnel_Poison = 50605;
public const int weapon_Poison = 50805;
public const int funnel_Void = 50616;
public const int puddle_Nether = 50906;
public const int weapon_Nether = 50806;
public const int miasma_Void = 50716;
public const int bolt_Impact = 50315;
public const int miasma_Holy = 50709;
public const int weapon_Holy = 50809;
public const int sword_Holy = 51009;
public const int puddle_Holy = 50909;
public const int funnel_Ether = 50612;
public const int miasma_Ether = 50712;
public const int weapon_Ether = 50812;
public const int funnel_Impact = 50615;
public const int bolt_Mind = 50304;
public const int puddle_Ether = 50912;
public const int sword_Ether = 51012;
public const int ball_Acid = 50113;
public const int funnel_Impact = 50615;
public const int arrow_Impact = 50515;
public const int bolt_Acid = 50313;
public const int sword_Acid = 51013;
public const int bit_Acid = 51113;
public const int ball_Impact = 50115;
public const int flare_Cut = 51214;
public const int bit_Cut = 51114;
public const int weapon_Cut = 50814;
public const int funnel_Ether = 50612;
public const int miasma_Cut = 50714;
public const int arrow_Cut = 50514;
public const int arrow_Ether = 50512;
public const int funnel_Cut = 50614;
public const int hand_Cut = 50414;
public const int bolt_Cut = 50314;
public const int arrow_Impact = 50515;
public const int hand_Impact = 50415;
public const int ball_Cut = 50114;
public const int flare_Acid = 51213;
public const int funnel_Cut = 50614;
public const int bit_Acid = 51113;
public const int arrow_Ether = 50512;
public const int arrow_Cut = 50514;
public const int hand_Ether = 50412;
public const int bolt_Ether = 50312;
public const int miasma_Impact = 50715;
public const int weapon_Chaos = 50810;
public const int miasma_Chaos = 50710;
public const int puddle_Impact = 50915;
public const int sword_Impact = 51015;
public const int bit_Impact = 51115;
public const int flare_Impact = 51215;
public const int ball_Void = 50116;
public const int puddle_Chaos = 50910;
public const int funnel_Chaos = 50610;
public const int bolt_Chaos = 50310;
public const int ball_Void = 50116;
public const int ball_Chaos = 50110;
public const int flare_Holy = 51209;
public const int bit_Holy = 51109;
public const int arrow_Chaos = 50510;
public const int sword_Holy = 51009;
public const int puddle_Holy = 50909;
public const int arrow_Chaos = 50510;
public const int sword_Chaos = 51010;
public const int bolt_Impact = 50315;
public const int flare_Chaos = 51210;
public const int puddle_Impact = 50915;
public const int miasma_Impact = 50715;
public const int bit_Chaos = 51110;
public const int ball_Ether = 50112;
public const int puddle_Magic = 50911;
public const int bit_Chaos = 51110;
public const int weapon_Magic = 50811;
public const int funnel_Magic = 50611;
public const int sword_Chaos = 51010;
public const int miasma_Magic = 50711;
public const int arrow_Magic = 50511;
public const int ball_Magic = 50111;
public const int miasma_Magic = 50711;
public const int flare_Chaos = 51210;
public const int puddle_Ether = 50912;
public const int funnel_Magic = 50611;
public const int bolt_Cold = 50301;
public const int weapon_Ether = 50812;
public const int flare_Darkness = 51203;
public const int SpIncognito = 8780;
public const int SpHero = 8504;
public const int flare_Darkness = 51203;
public const int SpWisdom = 8503;
public const int SpHealEris = 8404;
public const int SpHeal = 8403;
public const int SpHero = 8504;
public const int SpResEle = 8506;
public const int SpBreath = 8507;
public const int SpSpeedUp = 8510;
public const int SpRebirth = 8550;
public const int SpTransmuteBroom = 8790;
public const int SpIncognito = 8780;
public const int SpSeeInvisible = 8776;
public const int SpInvisibility = 8775;
public const int SpFear = 8720;
public const int SpHeal = 8403;
public const int SpSpeedDown = 8710;
public const int SpBerserk = 8707;
public const int SpHealCritical = 8402;
public const int SpGravity = 8708;
public const int SpBane = 8706;
public const int SpBrightnessOfLife = 8555;
public const int SpGravity = 8708;
public const int SpRebirth = 8550;
public const int SpTransmutePutit = 8791;
public const int SpBerserk = 8707;
public const int SpHealCritical = 8402;
public const int SpTransmutePutit = 8791;
public const int SpHealLight = 8400;
public const int SpHealHeavy = 8401;
public const int SpTelekinesis = 8215;
public const int SpWish = 8390;
public const int SpGate = 8202;
public const int ball_ = 7001;
public const int bit_Void = 51116;
public const int SpTelekinesis = 8215;
public const int SpReturn = 8220;
public const int SpEvac = 8221;
public const int SpIdentify = 8230;
public const int SpIdentifyG = 8232;
public const int SpWish = 8390;
public const int SpMutation = 8380;
public const int SpLevitate = 8300;
public const int SpChangeMaterialLesser = 8284;
public const int SpHealHeavy = 8401;
public const int SpFaith = 8281;
public const int SpMagicMap = 8260;
public const int SpHealLight = 8400;
public const int SpLighten = 8280;
public const int SpEnchantArmorGreat = 8256;
public const int SpUncurse = 8240;
public const int SpLighten = 8280;
public const int SpIdentifyG = 8232;
public const int SpMagicMap = 8260;
public const int ball_Mind = 50104;
public const int hand_Cold = 50401;
public const int bolt_Cold = 50301;
public const int ball_Cold = 50101;
public const int flare_Fire = 51200;
public const int sword_Fire = 51000;
public const int puddle_Fire = 50900;
public const int bolt_Lightning = 50302;
public const int hand_Lightning = 50402;
public const int arrow_Darkness = 50503;
public const int weapon_Fire = 50800;
public const int puddle_Fire = 50900;
public const int hand_Darkness = 50403;
public const int SpDarkness = 8800;
public const int miasma_Fire = 50700;
public const int weapon_Fire = 50800;
public const int arrow_Fire = 50500;
public const int funnel_Fire = 50600;
public const int SpSummonMachine = 9053;
public const int SpMeteor = 9150;
public const int arrow_Fire = 50500;
public const int hand_Fire = 50400;
public const int bolt_Fire = 50300;
public const int bit_Void = 51116;
public const int ball_Fire = 50100;
public const int FieldFeast = 10001;
public const int SpDrawBacker = 9503;
public const int funnel_Fire = 50600;
public const int miasma_Fire = 50700;
public const int SpDrawMetal = 9502;
public static readonly int[] IDS = new int[296]
{
50415, 51207, 51107, 51007, 50907, 50807, 50707, 50607, 50507, 50407,
50307, 50416, 50107, 51206, 50108, 50316, 50308, 50408, 50508, 50608,
50708, 50808, 50908, 51008, 51108, 51208, 50109, 50309, 50409, 50509,
50609, 51106, 51006, 50906, 50516, 50405, 50305, 50916, 50105, 51204,
51016, 50505, 51104, 50904, 50804, 50704, 50604, 50504, 50404, 51004,
50709, 50605, 50805, 50616, 50806, 50706, 50606, 50506, 50406, 50705,
50306, 50106, 51205, 51105, 50816, 51005, 50905, 50716, 50315, 50809,
51009, 50712, 50812, 50304, 51012, 51112, 51212, 50113, 50615, 50313,
50413, 50513, 50613, 50713, 50813, 50913, 51013, 51113, 50115, 51214,
51114, 51014, 50914, 50814, 50612, 50714, 50514, 50414, 50314, 50515,
50114, 51213, 50614, 50512, 50412, 50312, 50810, 50710, 50915, 51015,
51115, 51215, 50910, 50610, 50410, 50310, 50116, 50110, 51209, 51109,
50510, 50909, 51010, 51210, 50715, 50112, 51211, 51111, 51011, 50911,
51110, 50811, 50611, 50511, 50411, 50311, 50815, 50111, 50711, 50912,
50301, 51203, 8504, 8503, 8502, 8501, 8500, 8491, 8490, 8480,
8471, 8470, 8450, 8430, 8406, 8405, 8404, 8506, 8507, 8510,
8550, 8790, 8780, 8776, 8775, 8770, 8721, 8720, 8403, 8710,
8707, 8706, 8705, 8704, 8702, 8700, 8555, 8708, 8791, 8402,
8400, 8215, 8202, 8201, 8200, 7800, 7010, 7009, 7008, 7007,
7006, 7005, 7004, 7003, 7002, 7001, 8220, 8221, 8230, 8232,
8390, 8380, 8300, 8288, 8286, 8285, 8284, 8401, 8281, 8260,
8256, 8255, 8251, 8250, 8241, 8240, 8280, 50104, 8792, 8801,
50115, 51207, 51107, 51007, 50907, 51016, 50807, 50707, 50607, 50507,
50407, 50307, 50516, 50107, 50108, 50416, 50308, 50408, 50508, 50608,
50708, 50808, 50908, 51008, 51108, 51208, 50109, 50316, 50309, 50409,
50509, 51206, 51106, 51006, 50616, 50405, 50305, 50916, 50105, 51204,
50304, 50505, 51104, 50904, 50804, 50704, 50604, 50504, 50404, 51004,
50609, 50605, 50805, 50906, 50806, 50706, 50606, 50506, 50406, 50705,
50306, 50106, 51205, 51105, 50816, 51005, 50905, 50716, 50709, 50809,
50909, 50612, 50712, 50615, 50912, 51012, 51112, 51212, 50113, 50515,
50313, 50413, 50513, 50613, 50713, 50813, 50913, 51013, 51214, 51114,
51014, 50914, 50814, 50714, 50512, 50614, 50414, 50314, 50415, 50114,
51213, 51113, 50514, 50412, 50312, 50715, 50810, 50710, 51015, 51115,
51215, 50116, 50910, 50610, 50410, 50310, 50110, 51209, 51109, 51009,
50510, 50315, 50915, 51110, 50112, 51211, 51111, 51011, 50911, 50811,
51010, 50711, 50511, 50411, 50311, 50815, 50111, 51210, 50611, 50812,
8780, 51203, 8503, 8502, 8501, 8500, 8491, 8490, 8480, 8471,
8470, 8450, 8430, 8406, 8405, 8404, 8403, 8504, 8506, 8507,
8510, 8790, 8776, 8775, 8770, 8721, 8720, 8710, 8402, 8708,
8706, 8705, 8704, 8702, 8700, 8555, 8550, 8707, 8791, 8401,
8390, 8202, 8201, 8200, 7800, 7010, 7009, 7008, 7007, 7006,
7005, 7004, 7003, 7002, 7001, 51116, 8215, 8220, 8221, 8230,
8380, 8300, 8288, 8286, 8285, 8284, 8281, 8400, 8280, 8256,
8255, 8251, 8250, 8241, 8240, 8232, 8260, 50104, 8792, 8801,
50102, 51201, 51101, 51001, 50901, 50801, 50701, 50601, 50501, 50401,
50101, 51200, 51100, 51000, 50900, 50302, 50402, 50502, 50602, 51103,
51003, 50903, 50803, 50703, 50603, 50503, 50800, 50403, 50103, 51202,
51102, 51002, 50902, 50802, 50702, 50303, 8800, 50700, 50500, 9053,
50301, 50101, 51200, 51100, 51000, 50302, 50402, 50502, 50602, 51103,
51003, 50903, 50803, 50703, 50603, 50503, 50900, 50403, 50103, 51202,
51102, 51002, 50902, 50802, 50702, 50303, 8800, 50800, 50600, 9053,
9052, 9051, 9050, 9010, 9009, 9008, 9007, 9006, 9005, 9004,
9003, 9002, 9001, 9000, 9054, 9055, 9056, 9150, 50400, 50300,
51116, 50100, 10001, 10000, 9503, 50600, 9502, 9500, 9210, 9200,
9003, 9002, 9001, 9000, 9054, 9055, 9056, 9150, 50500, 50400,
50300, 50100, 10001, 10000, 9503, 50700, 9502, 9500, 9210, 9200,
9160, 9156, 9155, 9151, 9501, 51216
};
}Scene โ
{
EMono.ui.UpdateInput();
}
if (!EMono.core.IsGameStarted)
{
break;
}
if (EMono.pc.currentZone != EMono.game.activeZone && EMono.pc.global.transition != null)
{
EMono.player.flags.OnLeaveZone();SourceArea โ
using System;
using System.Collections.Generic;
public class SourceArea : SourceDataString<SourceArea.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["name_JP"] = 1,
["name"] = 2,
["textAssign_JP"] = 3,
["textAssign"] = 4,
["detail_JP"] = 5,
["tag"] = 6,
["detail"] = 7
};
public override string[] ImportFields => new string[1] { "textAssign" };
public override Row CreateRow()public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
textAssign_JP = SourceData.GetString(mapping["textAssign_JP"]),
textAssign = SourceData.GetString(mapping["textAssign"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
tag = SourceData.GetString(mapping["tag"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceBacker โ
}
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["valid"] = 3,
["lang"] = 7,
["name"] = 8,
["text"] = 9,
["type"] = 10,
["skin"] = 11,
["gender"] = 12,
["tree"] = 13,
["deity"] = 14,
["chara"] = 15,
["loot"] = 16,
["isStatic"] = 17,
["done"] = 18,
["loc"] = 19,
["original"] = 20
};
[NonSerialized]
public List<Row> listRemain = new List<Row>();public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetInt(mapping["id"]),
valid = SourceData.GetBool(mapping["valid"]),
lang = SourceData.GetString(mapping["lang"]),
name = SourceData.GetString(mapping["name"]),
text = SourceData.GetString(mapping["text"]),
type = SourceData.GetInt(mapping["type"]),
skin = SourceData.GetInt(mapping["skin"]),
gender = SourceData.GetInt(mapping["gender"]),
tree = SourceData.GetString(mapping["tree"]),
deity = SourceData.GetString(mapping["deity"]),
chara = SourceData.GetString(mapping["chara"]),
loot = SourceData.GetString(mapping["loot"]),
isStatic = SourceData.GetInt(mapping["isStatic"]),
done = SourceData.GetBool(mapping["done"]),
loc = SourceData.GetString(mapping["loc"]),
original = SourceData.GetString(mapping["original"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void OnInit()
{
foreach (Row row in rows)SourceBlock โ
public override RenderParam GetRenderParam(SourceMaterial.Row mat, int dir, Poin
}
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["alias"] = 1,
["name_JP"] = 2,
["name"] = 3,
["sort"] = 4,
["reqHarvest"] = 5,
["hp"] = 6,
["idThing"] = 7,
["_tileType"] = 8,
["_idRenderData"] = 9,
["tiles"] = 10,
["anime"] = 11,
["snowTile"] = 12,
["colorMod"] = 13,
["colorType"] = 14,
["value"] = 15,
["LV"] = 16,
["recipeKey"] = 17,
["factory"] = 18,
["components"] = 19,
["defMat"] = 20,
["category"] = 21,
["roof"] = 22,
["autoFloor"] = 23,
["concrete"] = 24,
["transparent"] = 25,
["transition"] = 26,
["tag"] = 27,
["soundFoot"] = 28,
["detail_JP"] = 29,
["detail"] = 30
};
public Dictionary<int, Row> _rows = new Dictionary<int, Row>();
public static RenderData FallbackRenderData;public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetInt(mapping["id"]),
alias = SourceData.GetString(mapping["alias"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
sort = SourceData.GetInt(mapping["sort"]),
reqHarvest = SourceData.GetStringArray(mapping["reqHarvest"]),
hp = SourceData.GetInt(mapping["hp"]),
idThing = SourceData.GetString(mapping["idThing"]),
_tileType = SourceData.GetString(mapping["_tileType"]),
_idRenderData = SourceData.GetString(mapping["_idRenderData"]),
tiles = SourceData.GetIntArray(mapping["tiles"]),
anime = SourceData.GetIntArray(mapping["anime"]),
snowTile = SourceData.GetInt(mapping["snowTile"]),
colorMod = SourceData.GetInt(mapping["colorMod"]),
colorType = SourceData.GetString(mapping["colorType"]),
value = SourceData.GetInt(mapping["value"]),
LV = SourceData.GetInt(mapping["LV"]),
recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
factory = SourceData.GetStringArray(mapping["factory"]),
components = SourceData.GetStringArray(mapping["components"]),
defMat = SourceData.GetString(mapping["defMat"]),
category = SourceData.GetString(mapping["category"]),
roof = SourceData.GetInt(mapping["roof"]),
autoFloor = SourceData.GetString(mapping["autoFloor"]),
concrete = SourceData.GetBool(mapping["concrete"]),
transparent = SourceData.GetBool(mapping["transparent"]),
transition = SourceData.GetIntArray(mapping["transition"]),
tag = SourceData.GetStringArray(mapping["tag"]),
soundFoot = SourceData.GetString(mapping["soundFoot"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void BackupPref()
{
_rows.Clear();SourceCalc โ
using System;
using System.Collections.Generic;
public class SourceCalc : SourceDataString<SourceCalc.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["num"] = 2,
["sides"] = 3,
["bonus"] = 4
};
public override Row CreateRow()
{
return new Rowpublic override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
num = SourceData.GetString(mapping["num"]),
sides = SourceData.GetString(mapping["sides"]),
bonus = SourceData.GetString(mapping["bonus"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceCategory โ
}
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["uid"] = 1,
["name_JP"] = 2,
["name"] = 3,
["_parent"] = 4,
["recipeCat"] = 5,
["slot"] = 6,
["skill"] = 7,
["maxStack"] = 8,
["tileDummy"] = 9,
["installOne"] = 10,
["ignoreBless"] = 11,
["tag"] = 12,
["idThing"] = 13,
["recycle"] = 14,
["costSP"] = 15,
["gift"] = 16,
["deliver"] = 17,
["offer"] = 18,
["ticket"] = 19,
["sortVal"] = 20,
["flag"] = 21
};
public override Row CreateRow()
{
return new Rowpublic override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
uid = SourceData.GetInt(mapping["uid"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
_parent = SourceData.GetString(mapping["_parent"]),
recipeCat = SourceData.GetString(mapping["recipeCat"]),
slot = Core.GetElement(SourceData.GetStr(mapping["slot"])),
skill = Core.GetElement(SourceData.GetStr(mapping["skill"])),
maxStack = SourceData.GetInt(mapping["maxStack"]),
tileDummy = SourceData.GetInt(mapping["tileDummy"]),
installOne = SourceData.GetBool(mapping["installOne"]),
ignoreBless = SourceData.GetInt(mapping["ignoreBless"]),
tag = SourceData.GetStringArray(mapping["tag"]),
idThing = SourceData.GetString(mapping["idThing"]),
recycle = SourceData.GetStringArray(mapping["recycle"]),
costSP = SourceData.GetInt(mapping["costSP"]),
gift = SourceData.GetInt(mapping["gift"]),
deliver = SourceData.GetInt(mapping["deliver"]),
offer = SourceData.GetInt(mapping["offer"]),
ticket = SourceData.GetInt(mapping["ticket"]),
sortVal = SourceData.GetInt(mapping["sortVal"]),
flag = SourceData.GetInt(mapping["flag"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void OnInit()
{
foreach (Row row in rows)SourceCellEffect โ
using System;
using System.Collections.Generic;
public class SourceCellEffect : SourceDataInt<SourceCellEffect.Row>
{public override int GetTile(SourceMaterial.Row mat, int dir = 0)
}
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["alias"] = 1,
["name_JP"] = 2,
["name"] = 3,
["sort"] = 4,
["_tileType"] = 5,
["_idRenderData"] = 6,
["tiles"] = 7,
["anime"] = 8,
["colorMod"] = 9,
["value"] = 10,
["recipeKey"] = 11,
["factory"] = 12,
["components"] = 13,
["defMat"] = 14,
["category"] = 15,
["tag"] = 16,
["detail_JP"] = 17,
["detail"] = 18
};
public static RenderData FallbackRenderData;
public override Row CreateRow()public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetInt(mapping["id"]),
alias = SourceData.GetString(mapping["alias"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
sort = SourceData.GetInt(mapping["sort"]),
_tileType = SourceData.GetString(mapping["_tileType"]),
_idRenderData = SourceData.GetString(mapping["_idRenderData"]),
tiles = SourceData.GetIntArray(mapping["tiles"]),
anime = SourceData.GetIntArray(mapping["anime"]),
colorMod = SourceData.GetInt(mapping["colorMod"]),
value = SourceData.GetInt(mapping["value"]),
recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
factory = SourceData.GetStringArray(mapping["factory"]),
components = SourceData.GetStringArray(mapping["components"]),
defMat = SourceData.GetString(mapping["defMat"]),
category = SourceData.GetString(mapping["category"]),
tag = SourceData.GetStringArray(mapping["tag"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void OnAfterImportData()
{
int num = 0;SourceChara โ
public override string GetName()
}
}
public static readonly IReadOnlyDictionary<string, int> RowMapping;
public Dictionary<string, Row> _rows = new Dictionary<string, Row>();
public static Row rowDefaultPCC;public override Row CreateRow()
return obj;
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
Row obj = new Row();
obj.id = SourceData.GetString(mapping["id"]);
obj._id = SourceData.GetInt(mapping["_id"]);
obj.name_JP = SourceData.GetString(mapping["name_JP"]);
obj.name = SourceData.GetString(mapping["name"]);
obj.aka_JP = SourceData.GetString(mapping["aka_JP"]);
obj.aka = SourceData.GetString(mapping["aka"]);
obj.idActor = SourceData.GetStringArray(mapping["idActor"]);
obj.sort = SourceData.GetInt(mapping["sort"]);
obj.size = SourceData.GetIntArray(mapping["size"]);
obj._idRenderData = SourceData.GetString(mapping["_idRenderData"]);
obj.tiles = SourceData.GetIntArray(mapping["tiles"]);
obj.tiles_snow = SourceData.GetIntArray(mapping["tiles_snow"]);
obj.colorMod = SourceData.GetInt(mapping["colorMod"]);
obj.components = SourceData.GetStringArray(mapping["components"]);
obj.defMat = SourceData.GetString(mapping["defMat"]);
obj.LV = SourceData.GetInt(mapping["LV"]);
obj.chance = SourceData.GetInt(mapping["chance"]);
obj.quality = SourceData.GetInt(mapping["quality"]);
obj.hostility = SourceData.GetString(mapping["hostility"]);
obj.biome = SourceData.GetString(mapping["biome"]);
obj.tag = SourceData.GetStringArray(mapping["tag"]);
obj.trait = SourceData.GetStringArray(mapping["trait"]);
obj.race = SourceData.GetString(mapping["race"]);
obj.job = SourceData.GetString(mapping["job"]);
obj.tactics = SourceData.GetString(mapping["tactics"]);
obj.aiIdle = SourceData.GetString(mapping["aiIdle"]);
obj.aiParam = SourceData.GetIntArray(mapping["aiParam"]);
obj.actCombat = SourceData.GetStringArray(mapping["actCombat"]);
obj.mainElement = SourceData.GetStringArray(mapping["mainElement"]);
obj.elements = Core.ParseElements(SourceData.GetStr(mapping["elements"]));
obj.equip = SourceData.GetString(mapping["equip"]);
obj.loot = SourceData.GetStringArray(mapping["loot"]);
obj.category = SourceData.GetString(mapping["category"]);
obj.filter = SourceData.GetStringArray(mapping["filter"]);
obj.gachaFilter = SourceData.GetStringArray(mapping["gachaFilter"]);
obj.tone = SourceData.GetString(mapping["tone"]);
obj.actIdle = SourceData.GetStringArray(mapping["actIdle"]);
obj.lightData = SourceData.GetString(mapping["lightData"]);
obj.idExtra = SourceData.GetString(mapping["idExtra"]);
obj.bio = SourceData.GetString(mapping["bio"]);
obj.faith = SourceData.GetString(mapping["faith"]);
obj.works = SourceData.GetStringArray(mapping["works"]);
obj.hobbies = SourceData.GetStringArray(mapping["hobbies"]);
obj.idText = SourceData.GetString(mapping["idText"]);
obj.moveAnime = SourceData.GetString(mapping["moveAnime"]);
obj.factory = SourceData.GetStringArray(mapping["factory"]);
obj.components = SourceData.GetStringArray(mapping["components"]);
obj.recruitItems = SourceData.GetStringArray(mapping["recruitItems"]);
obj.detail_JP = SourceData.GetString(mapping["detail_JP"]);
obj.detail = SourceData.GetString(mapping["detail"]);
return obj;
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void BackupPref()
{
SourceAsset._SavePrefs("prefs_auto");public override void ValidatePref()
row.pref.Validate();
}
}
static SourceChara()
{
Dictionary<string, int> dictionary = new Dictionary<string, int>();
dictionary["id"] = 0;
dictionary["_id"] = 1;
dictionary["name_JP"] = 2;
dictionary["name"] = 3;
dictionary["aka_JP"] = 4;
dictionary["aka"] = 5;
dictionary["idActor"] = 6;
dictionary["sort"] = 7;
dictionary["size"] = 8;
dictionary["_idRenderData"] = 9;
dictionary["tiles"] = 10;
dictionary["tiles_snow"] = 11;
dictionary["colorMod"] = 12;
dictionary["components"] = 13;
dictionary["defMat"] = 14;
dictionary["LV"] = 15;
dictionary["chance"] = 16;
dictionary["quality"] = 17;
dictionary["hostility"] = 18;
dictionary["biome"] = 19;
dictionary["tag"] = 20;
dictionary["trait"] = 21;
dictionary["race"] = 22;
dictionary["job"] = 23;
dictionary["tactics"] = 24;
dictionary["aiIdle"] = 25;
dictionary["aiParam"] = 26;
dictionary["actCombat"] = 27;
dictionary["mainElement"] = 28;
dictionary["elements"] = 29;
dictionary["equip"] = 30;
dictionary["loot"] = 31;
dictionary["category"] = 32;
dictionary["filter"] = 33;
dictionary["gachaFilter"] = 34;
dictionary["tone"] = 35;
dictionary["actIdle"] = 36;
dictionary["lightData"] = 37;
dictionary["idExtra"] = 38;
dictionary["bio"] = 39;
dictionary["faith"] = 40;
dictionary["works"] = 41;
dictionary["hobbies"] = 42;
dictionary["idText"] = 43;
dictionary["moveAnime"] = 44;
dictionary["factory"] = 45;
dictionary["components"] = 46;
dictionary["recruitItems"] = 47;
dictionary["detail_JP"] = 48;
dictionary["detail"] = 49;
RowMapping = dictionary;
}
}SourceCharaText โ
using System;
using System.Collections.Generic;
public class SourceCharaText : SourceDataString<SourceCharaText.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["calm_JP"] = 2,
["fov_JP"] = 3,
["aggro_JP"] = 4,
["dead_JP"] = 5,
["kill_JP"] = 6,
["calm"] = 7,
["fov"] = 8,
["aggro"] = 9,
["dead"] = 10,
["kill"] = 11
};
public override string[] ImportFields => new string[5] { "calm", "fov", "aggro", "dead", "kill" };
public override Row CreateRow()public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
calm_JP = SourceData.GetString(mapping["calm_JP"]),
fov_JP = SourceData.GetString(mapping["fov_JP"]),
aggro_JP = SourceData.GetString(mapping["aggro_JP"]),
dead_JP = SourceData.GetString(mapping["dead_JP"]),
kill_JP = SourceData.GetString(mapping["kill_JP"]),
calm = SourceData.GetString(mapping["calm"]),
fov = SourceData.GetString(mapping["fov"]),
aggro = SourceData.GetString(mapping["aggro"]),
dead = SourceData.GetString(mapping["dead"]),
kill = SourceData.GetString(mapping["kill"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceCheck โ
using System;
using System.Collections.Generic;
public class SourceCheck : SourceDataString<SourceCheck.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["element"] = 1,
["targetElement"] = 2,
["subFactor"] = 3,
["targetSubFactor"] = 4,
["baseDC"] = 5,
["critRange"] = 6,
["fumbleRange"] = 7,
["dice"] = 8,
["lvMod"] = 9
};
public override Row CreateRow()
{
return new Rowpublic override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
element = Core.GetElement(SourceData.GetStr(mapping["element"])),
targetElement = Core.GetElement(SourceData.GetStr(mapping["targetElement"])),
subFactor = SourceData.GetFloat(mapping["subFactor"]),
targetSubFactor = SourceData.GetFloat(mapping["targetSubFactor"]),
baseDC = SourceData.GetInt(mapping["baseDC"]),
critRange = SourceData.GetInt(mapping["critRange"]),
fumbleRange = SourceData.GetInt(mapping["fumbleRange"]),
dice = SourceData.GetInt(mapping["dice"]),
lvMod = SourceData.GetFloat(mapping["lvMod"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceCollectible โ
using System;
using System.Collections.Generic;
public class SourceCollectible : SourceDataString<SourceCollectible.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["name_JP"] = 1,
["name"] = 2,
["rarity"] = 3,
["prefab"] = 4,
["num"] = 5,
["filter"] = 6,
["tag"] = 7,
["sound"] = 8,
["detail_JP"] = 9,
["detail"] = 10
};
public override Row CreateRow()
{
return new Rowpublic override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
rarity = SourceData.GetInt(mapping["rarity"]),
prefab = SourceData.GetString(mapping["prefab"]),
num = SourceData.GetInt(mapping["num"]),
filter = SourceData.GetString(mapping["filter"]),
tag = SourceData.GetStringArray(mapping["tag"]),
sound = SourceData.GetString(mapping["sound"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}+SourceDeco โ
File Created
using System;
using System.Collections.Generic;
public class SourceDeco : SourceDataInt<SourceDeco.Row>
{
[Serializable]
public class Row : TileRow
{
public string idBiome;
public string[] reqHarvest;
public int[] anime;
public int edge;
public int autotile;
public int autotilePriority;
public float autotileBrightness;
public override bool UseAlias => true;
public override string GetAlias => alias;
public override string RecipeID => "d" + id;
public override int GetTile(SourceMaterial.Row mat, int dir = 0)
{
return _tiles[dir % _tiles.Length];
}
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["alias"] = 1,
["name_JP"] = 2,
["name"] = 3,
["sort"] = 4,
["idBiome"] = 5,
["reqHarvest"] = 6,
["hp"] = 7,
["_tileType"] = 8,
["_idRenderData"] = 9,
["tiles"] = 10,
["anime"] = 11,
["colorMod"] = 12,
["value"] = 13,
["LV"] = 14,
["recipeKey"] = 15,
["factory"] = 16,
["components"] = 17,
["defMat"] = 18,
["category"] = 19,
["edge"] = 20,
["autotile"] = 21,
["autotilePriority"] = 22,
["autotileBrightness"] = 23,
["soundFoot"] = 24,
["tag"] = 25,
["detail_JP"] = 26,
["detail"] = 27
};
public Dictionary<int, Row> _rows = new Dictionary<int, Row>();
public override Row CreateRow()
{
return new Row
{
id = SourceData.GetInt(0),
alias = SourceData.GetString(1),
name_JP = SourceData.GetString(2),
name = SourceData.GetString(3),
sort = SourceData.GetInt(4),
idBiome = SourceData.GetString(5),
reqHarvest = SourceData.GetStringArray(6),
hp = SourceData.GetInt(7),
_tileType = SourceData.GetString(8),
_idRenderData = SourceData.GetString(9),
tiles = SourceData.GetIntArray(10),
anime = SourceData.GetIntArray(11),
colorMod = SourceData.GetInt(12),
value = SourceData.GetInt(13),
LV = SourceData.GetInt(14),
recipeKey = SourceData.GetStringArray(15),
factory = SourceData.GetStringArray(16),
components = SourceData.GetStringArray(17),
defMat = SourceData.GetString(18),
category = SourceData.GetString(19),
edge = SourceData.GetInt(20),
autotile = SourceData.GetInt(21),
autotilePriority = SourceData.GetInt(22),
autotileBrightness = SourceData.GetFloat(23),
soundFoot = SourceData.GetString(24),
tag = SourceData.GetStringArray(25),
detail_JP = SourceData.GetString(26),
detail = SourceData.GetString(27)
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetInt(mapping["id"]),
alias = SourceData.GetString(mapping["alias"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
sort = SourceData.GetInt(mapping["sort"]),
idBiome = SourceData.GetString(mapping["idBiome"]),
reqHarvest = SourceData.GetStringArray(mapping["reqHarvest"]),
hp = SourceData.GetInt(mapping["hp"]),
_tileType = SourceData.GetString(mapping["_tileType"]),
_idRenderData = SourceData.GetString(mapping["_idRenderData"]),
tiles = SourceData.GetIntArray(mapping["tiles"]),
anime = SourceData.GetIntArray(mapping["anime"]),
colorMod = SourceData.GetInt(mapping["colorMod"]),
value = SourceData.GetInt(mapping["value"]),
LV = SourceData.GetInt(mapping["LV"]),
recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
factory = SourceData.GetStringArray(mapping["factory"]),
components = SourceData.GetStringArray(mapping["components"]),
defMat = SourceData.GetString(mapping["defMat"]),
category = SourceData.GetString(mapping["category"]),
edge = SourceData.GetInt(mapping["edge"]),
autotile = SourceData.GetInt(mapping["autotile"]),
autotilePriority = SourceData.GetInt(mapping["autotilePriority"]),
autotileBrightness = SourceData.GetFloat(mapping["autotileBrightness"]),
soundFoot = SourceData.GetString(mapping["soundFoot"]),
tag = SourceData.GetStringArray(mapping["tag"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void BackupPref()
{
_rows.Clear();
foreach (Row row in rows)
{
_rows[row.id] = row;
}
}
public override void RestorePref()
{
foreach (Row row in rows)
{
row.pref = _rows.TryGetValue(row.id)?.pref ?? new SourcePref();
}
}
public override void ValidatePref()
{
foreach (Row row in rows)
{
row.pref.Validate();
}
}
public override void OnAfterImportData()
{
int num = 0;
foreach (Row row in rows)
{
if (row.sort != 0)
{
num = row.sort;
}
row.sort = num;
num++;
}
rows.Sort((Row a, Row b) => a.id - b.id);
}
public override void OnInit()
{
Cell.decoList = rows;
foreach (Row row in rows)
{
row.Init();
}
}
}SourceElement โ
public bool IsEncAppliable(SourceCategory.Row cat)
}
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["alias"] = 1,
["name_JP"] = 2,
["name"] = 3,
["altname_JP"] = 4,
["altname"] = 5,
["aliasParent"] = 6,
["aliasRef"] = 7,
["aliasMtp"] = 8,
["parentFactor"] = 9,
["lvFactor"] = 10,
["encFactor"] = 11,
["encSlot"] = 12,
["mtp"] = 13,
["LV"] = 14,
["chance"] = 15,
["value"] = 16,
["cost"] = 17,
["geneSlot"] = 18,
["sort"] = 19,
["target"] = 20,
["proc"] = 21,
["type"] = 22,
["group"] = 23,
["category"] = 24,
["categorySub"] = 25,
["abilityType"] = 26,
["tag"] = 27,
["thing"] = 28,
["eleP"] = 29,
["cooldown"] = 30,
["charge"] = 31,
["radius"] = 32,
["max"] = 33,
["req"] = 34,
["idTrainer"] = 35,
["partySkill"] = 36,
["tagTrainer"] = 37,
["levelBonus_JP"] = 38,
["levelBonus"] = 39,
["foodEffect"] = 40,
["langAct"] = 42,
["detail_JP"] = 43,
["detail"] = 44,
["textPhase_JP"] = 45,
["textPhase"] = 46,
["textExtra_JP"] = 47,
["textExtra"] = 48,
["textInc_JP"] = 49,
["textInc"] = 50,
["textDec_JP"] = 51,
["textDec"] = 52,
["textAlt_JP"] = 53,
["textAlt"] = 54,
["adjective_JP"] = 55,
["adjective"] = 56
};
[NonSerialized]
public List<Row> hobbies = new List<Row>();public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetInt(mapping["id"]),
alias = SourceData.GetString(mapping["alias"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
altname_JP = SourceData.GetString(mapping["altname_JP"]),
altname = SourceData.GetString(mapping["altname"]),
aliasParent = SourceData.GetString(mapping["aliasParent"]),
aliasRef = SourceData.GetString(mapping["aliasRef"]),
aliasMtp = SourceData.GetString(mapping["aliasMtp"]),
parentFactor = SourceData.GetFloat(mapping["parentFactor"]),
lvFactor = SourceData.GetInt(mapping["lvFactor"]),
encFactor = SourceData.GetInt(mapping["encFactor"]),
encSlot = SourceData.GetString(mapping["encSlot"]),
mtp = SourceData.GetInt(mapping["mtp"]),
LV = SourceData.GetInt(mapping["LV"]),
chance = SourceData.GetInt(mapping["chance"]),
value = SourceData.GetInt(mapping["value"]),
cost = SourceData.GetIntArray(mapping["cost"]),
geneSlot = SourceData.GetInt(mapping["geneSlot"]),
sort = SourceData.GetInt(mapping["sort"]),
target = SourceData.GetString(mapping["target"]),
proc = SourceData.GetStringArray(mapping["proc"]),
type = SourceData.GetString(mapping["type"]),
group = SourceData.GetString(mapping["group"]),
category = SourceData.GetString(mapping["category"]),
categorySub = SourceData.GetString(mapping["categorySub"]),
abilityType = SourceData.GetStringArray(mapping["abilityType"]),
tag = SourceData.GetStringArray(mapping["tag"]),
thing = SourceData.GetString(mapping["thing"]),
eleP = SourceData.GetInt(mapping["eleP"]),
cooldown = SourceData.GetInt(mapping["cooldown"]),
charge = SourceData.GetInt(mapping["charge"]),
radius = SourceData.GetFloat(mapping["radius"]),
max = SourceData.GetInt(mapping["max"]),
req = SourceData.GetStringArray(mapping["req"]),
idTrainer = SourceData.GetString(mapping["idTrainer"]),
partySkill = SourceData.GetInt(mapping["partySkill"]),
tagTrainer = SourceData.GetString(mapping["tagTrainer"]),
levelBonus_JP = SourceData.GetString(mapping["levelBonus_JP"]),
levelBonus = SourceData.GetString(mapping["levelBonus"]),
foodEffect = SourceData.GetStringArray(mapping["foodEffect"]),
langAct = SourceData.GetStringArray(mapping["langAct"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"]),
textPhase_JP = SourceData.GetString(mapping["textPhase_JP"]),
textPhase = SourceData.GetString(mapping["textPhase"]),
textExtra_JP = SourceData.GetString(mapping["textExtra_JP"]),
textExtra = SourceData.GetString(mapping["textExtra"]),
textInc_JP = SourceData.GetString(mapping["textInc_JP"]),
textInc = SourceData.GetString(mapping["textInc"]),
textDec_JP = SourceData.GetString(mapping["textDec_JP"]),
textDec = SourceData.GetString(mapping["textDec"]),
textAlt_JP = SourceData.GetStringArray(mapping["textAlt_JP"]),
textAlt = SourceData.GetStringArray(mapping["textAlt"]),
adjective_JP = SourceData.GetStringArray(mapping["adjective_JP"]),
adjective = SourceData.GetStringArray(mapping["adjective"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void OnInit()
{
hobbies.Clear();SourceFaction โ
using System;
using System.Collections.Generic;
public class SourceFaction : SourceDataString<SourceFaction.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["name_JP"] = 1,
["name"] = 2,
["type"] = 3,
["faith"] = 4,
["domain"] = 5,
["relation"] = 6,
["textType_JP"] = 7,
["textType"] = 8,
["textAvatar"] = 9,
["detail_JP"] = 10,
["detail"] = 11
};
public override string[] ImportFields => new string[3] { "textType", "textBenefit", "textPet" };
public override Row CreateRow()public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
type = SourceData.GetString(mapping["type"]),
faith = SourceData.GetString(mapping["faith"]),
domain = SourceData.GetString(mapping["domain"]),
relation = SourceData.GetInt(mapping["relation"]),
textType_JP = SourceData.GetString(mapping["textType_JP"]),
textType = SourceData.GetString(mapping["textType"]),
textAvatar = SourceData.GetString(mapping["textAvatar"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceFloor โ
public override int GetTile(SourceMaterial.Row mat, int dir = 0)
}
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["alias"] = 1,
["name_JP"] = 2,
["name"] = 3,
["sort"] = 4,
["idBiome"] = 5,
["reqHarvest"] = 6,
["hp"] = 7,
["_tileType"] = 8,
["_idRenderData"] = 9,
["tiles"] = 10,
["anime"] = 11,
["colorMod"] = 12,
["value"] = 13,
["LV"] = 14,
["recipeKey"] = 15,
["factory"] = 16,
["components"] = 17,
["defMat"] = 18,
["defBlock"] = 19,
["bridgeBlock"] = 20,
["category"] = 21,
["edge"] = 22,
["autotile"] = 23,
["autotilePriority"] = 24,
["autotileBrightness"] = 25,
["soundFoot"] = 26,
["tag"] = 27,
["detail_JP"] = 28,
["detail"] = 29
};
public Dictionary<int, Row> _rows = new Dictionary<int, Row>();
public static RenderData FallbackRenderData;public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetInt(mapping["id"]),
alias = SourceData.GetString(mapping["alias"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
sort = SourceData.GetInt(mapping["sort"]),
idBiome = SourceData.GetString(mapping["idBiome"]),
reqHarvest = SourceData.GetStringArray(mapping["reqHarvest"]),
hp = SourceData.GetInt(mapping["hp"]),
_tileType = SourceData.GetString(mapping["_tileType"]),
_idRenderData = SourceData.GetString(mapping["_idRenderData"]),
tiles = SourceData.GetIntArray(mapping["tiles"]),
anime = SourceData.GetIntArray(mapping["anime"]),
colorMod = SourceData.GetInt(mapping["colorMod"]),
value = SourceData.GetInt(mapping["value"]),
LV = SourceData.GetInt(mapping["LV"]),
recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
factory = SourceData.GetStringArray(mapping["factory"]),
components = SourceData.GetStringArray(mapping["components"]),
defMat = SourceData.GetString(mapping["defMat"]),
defBlock = SourceData.GetString(mapping["defBlock"]),
bridgeBlock = SourceData.GetString(mapping["bridgeBlock"]),
category = SourceData.GetString(mapping["category"]),
edge = SourceData.GetInt(mapping["edge"]),
autotile = SourceData.GetInt(mapping["autotile"]),
autotilePriority = SourceData.GetInt(mapping["autotilePriority"]),
autotileBrightness = SourceData.GetFloat(mapping["autotileBrightness"]),
soundFoot = SourceData.GetString(mapping["soundFoot"]),
tag = SourceData.GetStringArray(mapping["tag"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void BackupPref()
{
_rows.Clear();SourceFood โ
public override string GetAlias => "n";
}
public new static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["_origin"] = 1,
["name_JP"] = 2,
["unit_JP"] = 3,
["name"] = 4,
["unit"] = 5,
["name2_JP"] = 6,
["name2"] = 7,
["unknown_JP"] = 8,
["unknown"] = 9,
["tiles"] = 10,
["parse"] = 11,
["vals"] = 12,
["trait"] = 13,
["elements"] = 14,
["idTaste"] = 16,
["TST"] = 17,
["NUT"] = 18,
["STR"] = 19,
["STR2"] = 20,
["END"] = 21,
["END2"] = 22,
["DEX"] = 23,
["DEX2"] = 24,
["PER"] = 25,
["PER2"] = 26,
["LER"] = 27,
["LER2"] = 28,
["WIL"] = 29,
["WIL2"] = 30,
["MAG"] = 31,
["MAG2"] = 32,
["CHA"] = 33,
["CHA2"] = 34,
["LV"] = 36,
["chance"] = 37,
["value"] = 38,
["weight"] = 39,
["recipeKey"] = 40,
["factory"] = 41,
["components"] = 42,
["defMat"] = 43,
["category"] = 44,
["tag"] = 45,
["detail_JP"] = 46,
["detail"] = 47
};
public override Row CreateRow()
{
return new Row2public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row2
{
id = SourceData.GetString(mapping["id"]),
_origin = SourceData.GetString(mapping["_origin"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
unit_JP = SourceData.GetString(mapping["unit_JP"]),
name = SourceData.GetString(mapping["name"]),
unit = SourceData.GetString(mapping["unit"]),
name2_JP = SourceData.GetStringArray(mapping["name2_JP"]),
name2 = SourceData.GetStringArray(mapping["name2"]),
unknown_JP = SourceData.GetString(mapping["unknown_JP"]),
unknown = SourceData.GetString(mapping["unknown"]),
tiles = SourceData.GetIntArray(mapping["tiles"]),
parse = SourceData.GetStringArray(mapping["parse"]),
vals = SourceData.GetStringArray(mapping["vals"]),
trait = SourceData.GetStringArray(mapping["trait"]),
elements = Core.ParseElements(SourceData.GetStr(mapping["elements"])),
idTaste = SourceData.GetString(mapping["idTaste"]),
TST = SourceData.GetInt(mapping["TST"]),
NUT = SourceData.GetInt(mapping["NUT"]),
STR = SourceData.GetInt(mapping["STR"]),
STR2 = SourceData.GetInt(mapping["STR2"]),
END = SourceData.GetInt(mapping["END"]),
END2 = SourceData.GetInt(mapping["END2"]),
DEX = SourceData.GetInt(mapping["DEX"]),
DEX2 = SourceData.GetInt(mapping["DEX2"]),
PER = SourceData.GetInt(mapping["PER"]),
PER2 = SourceData.GetInt(mapping["PER2"]),
LER = SourceData.GetInt(mapping["LER"]),
LER2 = SourceData.GetInt(mapping["LER2"]),
WIL = SourceData.GetInt(mapping["WIL"]),
WIL2 = SourceData.GetInt(mapping["WIL2"]),
MAG = SourceData.GetInt(mapping["MAG"]),
MAG2 = SourceData.GetInt(mapping["MAG2"]),
CHA = SourceData.GetInt(mapping["CHA"]),
CHA2 = SourceData.GetInt(mapping["CHA2"]),
LV = SourceData.GetInt(mapping["LV"]),
chance = SourceData.GetInt(mapping["chance"]),
value = SourceData.GetInt(mapping["value"]),
weight = SourceData.GetInt(mapping["weight"]),
recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
factory = SourceData.GetStringArray(mapping["factory"]),
components = SourceData.GetStringArray(mapping["components"]),
defMat = SourceData.GetString(mapping["defMat"]),
category = SourceData.GetString(mapping["category"]),
tag = SourceData.GetStringArray(mapping["tag"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void Reset()
{
base.Reset();SourceGlobalTile โ
public override string GetAlias => alias;
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["alias"] = 1,
["name_JP"] = 2,
["name"] = 3,
["tiles"] = 4,
["floor"] = 5,
["zoneProfile"] = 6,
["tag"] = 7,
["dangerLv"] = 8,
["trait"] = 9,
["idBiome"] = 10,
["attribs"] = 11,
["detail_JP"] = 12,
["detail"] = 13
};
public Dictionary<int, Row> tileAlias = new Dictionary<int, Row>();
public override Row CreateRow()public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetInt(mapping["id"]),
alias = SourceData.GetString(mapping["alias"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
tiles = SourceData.GetIntArray(mapping["tiles"]),
floor = SourceData.GetInt(mapping["floor"]),
zoneProfile = SourceData.GetString(mapping["zoneProfile"]),
tag = SourceData.GetStringArray(mapping["tag"]),
dangerLv = SourceData.GetInt(mapping["dangerLv"]),
trait = SourceData.GetStringArray(mapping["trait"]),
idBiome = SourceData.GetString(mapping["idBiome"]),
attribs = SourceData.GetIntArray(mapping["attribs"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void OnInit()
{
foreach (Row row in rows)SourceHobby โ
public override string GetAlias => alias;
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["alias"] = 1,
["type"] = 2,
["name_JP"] = 3,
["name"] = 4,
["ai"] = 5,
["talk"] = 6,
["area"] = 7,
["destTrait"] = 8,
["workTag"] = 9,
["expedition"] = 10,
["resources"] = 11,
["randomRange"] = 12,
["modifiers"] = 13,
["tax"] = 14,
["things"] = 15,
["elements"] = 16,
["skill"] = 17,
["detail_JP"] = 18,
["detail"] = 19
};
[NonSerialized]
public List<Row> listHobbies = new List<Row>();public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetInt(mapping["id"]),
alias = SourceData.GetString(mapping["alias"]),
type = SourceData.GetString(mapping["type"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
ai = SourceData.GetString(mapping["ai"]),
talk = SourceData.GetString(mapping["talk"]),
area = SourceData.GetString(mapping["area"]),
destTrait = SourceData.GetString(mapping["destTrait"]),
workTag = SourceData.GetString(mapping["workTag"]),
expedition = SourceData.GetString(mapping["expedition"]),
resources = SourceData.GetIntArray(mapping["resources"]),
randomRange = SourceData.GetInt(mapping["randomRange"]),
modifiers = SourceData.GetStringArray(mapping["modifiers"]),
tax = SourceData.GetInt(mapping["tax"]),
things = SourceData.GetStringArray(mapping["things"]),
elements = Core.ParseElements(SourceData.GetStr(mapping["elements"])),
skill = SourceData.GetString(mapping["skill"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void OnInit()
{
foreach (Row row in rows)SourceHomeResource โ
using System;
using System.Collections.Generic;
public class SourceHomeResource : SourceDataString<SourceHomeResource.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["name_JP"] = 1,
["name"] = 2,
["expMod"] = 3,
["maxLv"] = 4,
["reward"] = 5,
["detail_JP"] = 6,
["detail"] = 7
};
public override Row CreateRow()
{
return new Rowpublic override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
expMod = SourceData.GetInt(mapping["expMod"]),
maxLv = SourceData.GetInt(mapping["maxLv"]),
reward = SourceData.GetStringArray(mapping["reward"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceJob โ
public void WriteNote(UINote n)
}
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["name_JP"] = 1,
["name"] = 2,
["playable"] = 3,
["STR"] = 4,
["END"] = 5,
["DEX"] = 6,
["PER"] = 7,
["LER"] = 8,
["WIL"] = 9,
["MAG"] = 10,
["CHA"] = 11,
["SPD"] = 12,
["elements"] = 14,
["weapon"] = 15,
["equip"] = 16,
["domain"] = 17,
["detail_JP"] = 18,
["detail"] = 19
};
public override Row CreateRow()
{
return new Rowpublic override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
playable = SourceData.GetInt(mapping["playable"]),
STR = SourceData.GetInt(mapping["STR"]),
END = SourceData.GetInt(mapping["END"]),
DEX = SourceData.GetInt(mapping["DEX"]),
PER = SourceData.GetInt(mapping["PER"]),
LER = SourceData.GetInt(mapping["LER"]),
WIL = SourceData.GetInt(mapping["WIL"]),
MAG = SourceData.GetInt(mapping["MAG"]),
CHA = SourceData.GetInt(mapping["CHA"]),
SPD = SourceData.GetInt(mapping["SPD"]),
elements = Core.ParseElements(SourceData.GetStr(mapping["elements"])),
weapon = SourceData.GetStringArray(mapping["weapon"]),
equip = SourceData.GetString(mapping["equip"]),
domain = Core.ParseElements(SourceData.GetStr(mapping["domain"])),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void OnInit()
{
foreach (Row row in rows)SourceKeyItem โ
using System;
using System.Collections.Generic;
public class SourceKeyItem : SourceDataInt<SourceKeyItem.Row>
{ public override string GetAlias => alias;
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["alias"] = 1,
["name_JP"] = 2,
["name"] = 3,
["detail_JP"] = 4,
["detail"] = 5
};
public override Row CreateRow()
{
return new Rowpublic override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetInt(mapping["id"]),
alias = SourceData.GetString(mapping["alias"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceManager โ
public class SourceManager : EMono
public SourceFloor floors;
public SourceDeco decos;
public SourceCellEffect cellEffects;
public SourceObj objs; jobs.Init();
hobbies.Init();
floors.Init();
decos.Init();
blocks.Init();
cellEffects.Init();
objs.Init();SourceMaterial โ
}
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["alias"] = 1,
["name_JP"] = 2,
["name"] = 3,
["category"] = 4,
["tag"] = 5,
["thing"] = 6,
["goods"] = 7,
["minerals"] = 8,
["decal"] = 9,
["decay"] = 10,
["grass"] = 11,
["defFloor"] = 12,
["defBlock"] = 13,
["edge"] = 14,
["ramp"] = 15,
["idSound"] = 16,
["soundFoot"] = 17,
["hardness"] = 18,
["groups"] = 19,
["tier"] = 20,
["chance"] = 21,
["weight"] = 22,
["value"] = 23,
["quality"] = 24,
["atk"] = 25,
["dmg"] = 26,
["dv"] = 27,
["pv"] = 28,
["dice"] = 29,
["bits"] = 30,
["elements"] = 31,
["altName"] = 32,
["altName_JP"] = 33
};
public static Dictionary<string, TierList> tierMap = new Dictionary<string, TierList>();
public override string[] ImportFields => new string[1] { "altName" };public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetInt(mapping["id"]),
alias = SourceData.GetString(mapping["alias"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
category = SourceData.GetString(mapping["category"]),
tag = SourceData.GetStringArray(mapping["tag"]),
thing = SourceData.GetString(mapping["thing"]),
goods = SourceData.GetStringArray(mapping["goods"]),
minerals = SourceData.GetStringArray(mapping["minerals"]),
decal = SourceData.GetInt(mapping["decal"]),
decay = SourceData.GetInt(mapping["decay"]),
grass = SourceData.GetInt(mapping["grass"]),
defFloor = SourceData.GetInt(mapping["defFloor"]),
defBlock = SourceData.GetInt(mapping["defBlock"]),
edge = SourceData.GetInt(mapping["edge"]),
ramp = SourceData.GetInt(mapping["ramp"]),
idSound = SourceData.GetString(mapping["idSound"]),
soundFoot = SourceData.GetString(mapping["soundFoot"]),
hardness = SourceData.GetInt(mapping["hardness"]),
groups = SourceData.GetStringArray(mapping["groups"]),
tier = SourceData.GetInt(mapping["tier"]),
chance = SourceData.GetInt(mapping["chance"]),
weight = SourceData.GetInt(mapping["weight"]),
value = SourceData.GetInt(mapping["value"]),
quality = SourceData.GetInt(mapping["quality"]),
atk = SourceData.GetInt(mapping["atk"]),
dmg = SourceData.GetInt(mapping["dmg"]),
dv = SourceData.GetInt(mapping["dv"]),
pv = SourceData.GetInt(mapping["pv"]),
dice = SourceData.GetInt(mapping["dice"]),
bits = SourceData.GetStringArray(mapping["bits"]),
elements = Core.ParseElements(SourceData.GetStr(mapping["elements"])),
altName = SourceData.GetStringArray(mapping["altName"]),
altName_JP = SourceData.GetStringArray(mapping["altName_JP"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void OnInit()
{
Cell.matList = rows;SourceObj โ
public bool harvest;
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["alias"] = 1,
["name_JP"] = 2,
["name"] = 3,
["_growth"] = 4,
["costSoil"] = 5,
["objType"] = 6,
["vals"] = 7,
["tag"] = 8,
["sort"] = 9,
["reqHarvest"] = 10,
["hp"] = 11,
["_tileType"] = 12,
["valType"] = 13,
["_idRenderData"] = 14,
["tiles"] = 15,
["anime"] = 16,
["snowTile"] = 17,
["colorMod"] = 18,
["colorType"] = 19,
["value"] = 20,
["LV"] = 21,
["chance"] = 22,
["recipeKey"] = 23,
["factory"] = 24,
["components"] = 25,
["defMat"] = 26,
["matCategory"] = 27,
["category"] = 28,
["idRoof"] = 29,
["detail_JP"] = 30,
["detail"] = 31
};
public Dictionary<int, Row> _rows = new Dictionary<int, Row>();
public static RenderData FallbackRenderData;public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetInt(mapping["id"]),
alias = SourceData.GetString(mapping["alias"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
_growth = SourceData.GetStringArray(mapping["_growth"]),
costSoil = SourceData.GetInt(mapping["costSoil"]),
objType = SourceData.GetString(mapping["objType"]),
vals = SourceData.GetStringArray(mapping["vals"]),
tag = SourceData.GetStringArray(mapping["tag"]),
sort = SourceData.GetInt(mapping["sort"]),
reqHarvest = SourceData.GetStringArray(mapping["reqHarvest"]),
hp = SourceData.GetInt(mapping["hp"]),
_tileType = SourceData.GetString(mapping["_tileType"]),
valType = SourceData.GetString(mapping["valType"]),
_idRenderData = SourceData.GetString(mapping["_idRenderData"]),
tiles = SourceData.GetIntArray(mapping["tiles"]),
anime = SourceData.GetIntArray(mapping["anime"]),
snowTile = SourceData.GetInt(mapping["snowTile"]),
colorMod = SourceData.GetInt(mapping["colorMod"]),
colorType = SourceData.GetString(mapping["colorType"]),
value = SourceData.GetInt(mapping["value"]),
LV = SourceData.GetInt(mapping["LV"]),
chance = SourceData.GetInt(mapping["chance"]),
recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
factory = SourceData.GetStringArray(mapping["factory"]),
components = SourceData.GetStringArray(mapping["components"]),
defMat = SourceData.GetString(mapping["defMat"]),
matCategory = SourceData.GetString(mapping["matCategory"]),
category = SourceData.GetString(mapping["category"]),
idRoof = SourceData.GetInt(mapping["idRoof"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void BackupPref()
{
_rows.Clear();SourcePerson โ
using System;
using System.Collections.Generic;
public class SourcePerson : SourceDataString<SourcePerson.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["idActor"] = 1,
["name_JP"] = 2,
["name"] = 3,
["aka_JP"] = 4,
["aka"] = 5,
["portrait"] = 6,
["faction"] = 7,
["LV"] = 8,
["job"] = 9,
["race"] = 10,
["material"] = 11,
["bio"] = 12,
["detail_JP"] = 13,
["detail"] = 14
};
public override string[] ImportFields => new string[1] { "aka" };
public override Row CreateRow()public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
idActor = SourceData.GetString(mapping["idActor"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
aka_JP = SourceData.GetString(mapping["aka_JP"]),
aka = SourceData.GetString(mapping["aka"]),
portrait = SourceData.GetString(mapping["portrait"]),
faction = SourceData.GetString(mapping["faction"]),
LV = SourceData.GetInt(mapping["LV"]),
job = SourceData.GetString(mapping["job"]),
race = SourceData.GetString(mapping["race"]),
material = SourceData.GetString(mapping["material"]),
bio = SourceData.GetString(mapping["bio"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceQuest โ
using System;
using System.Collections.Generic;
public class SourceQuest : SourceDataString<SourceQuest.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["name_JP"] = 1,
["name"] = 2,
["type"] = 3,
["drama"] = 4,
["idZone"] = 5,
["group"] = 6,
["tags"] = 7,
["money"] = 8,
["chance"] = 9,
["minFame"] = 10,
["detail_JP"] = 11,
["detail"] = 12,
["talkProgress_JP"] = 13,
["talkProgress"] = 14,
["talkComplete_JP"] = 15,
["talkComplete"] = 16
};
public override string[] ImportFields => new string[2] { "talkProgress", "talkComplete" };
public override Row CreateRow()public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
type = SourceData.GetString(mapping["type"]),
drama = SourceData.GetStringArray(mapping["drama"]),
idZone = SourceData.GetString(mapping["idZone"]),
group = SourceData.GetString(mapping["group"]),
tags = SourceData.GetStringArray(mapping["tags"]),
money = SourceData.GetInt(mapping["money"]),
chance = SourceData.GetInt(mapping["chance"]),
minFame = SourceData.GetInt(mapping["minFame"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"]),
talkProgress_JP = SourceData.GetString(mapping["talkProgress_JP"]),
talkProgress = SourceData.GetString(mapping["talkProgress"]),
talkComplete_JP = SourceData.GetString(mapping["talkComplete_JP"]),
talkComplete = SourceData.GetString(mapping["talkComplete"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceRace โ
public bool IsPlant => tag.Contains("plant");
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["name_JP"] = 1,
["name"] = 2,
["playable"] = 3,
["tag"] = 4,
["life"] = 5,
["mana"] = 6,
["vigor"] = 7,
["DV"] = 8,
["PV"] = 9,
["PDR"] = 10,
["EDR"] = 11,
["EP"] = 12,
["STR"] = 13,
["END"] = 14,
["DEX"] = 15,
["PER"] = 16,
["LER"] = 17,
["WIL"] = 18,
["MAG"] = 19,
["CHA"] = 20,
["SPD"] = 21,
["INT"] = 23,
["martial"] = 24,
["pen"] = 25,
["elements"] = 26,
["skill"] = 27,
["figure"] = 28,
["geneCap"] = 29,
["material"] = 30,
["corpse"] = 31,
["loot"] = 32,
["blood"] = 33,
["meleeStyle"] = 34,
["castStyle"] = 35,
["EQ"] = 36,
["sex"] = 37,
["age"] = 38,
["height"] = 39,
["breeder"] = 40,
["food"] = 41,
["fur"] = 42,
["detail_JP"] = 43,
["detail"] = 44
};
public override Row CreateRow()
{
return new Rowpublic override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
playable = SourceData.GetInt(mapping["playable"]),
tag = SourceData.GetStringArray(mapping["tag"]),
life = SourceData.GetInt(mapping["life"]),
mana = SourceData.GetInt(mapping["mana"]),
vigor = SourceData.GetInt(mapping["vigor"]),
DV = SourceData.GetInt(mapping["DV"]),
PV = SourceData.GetInt(mapping["PV"]),
PDR = SourceData.GetInt(mapping["PDR"]),
EDR = SourceData.GetInt(mapping["EDR"]),
EP = SourceData.GetInt(mapping["EP"]),
STR = SourceData.GetInt(mapping["STR"]),
END = SourceData.GetInt(mapping["END"]),
DEX = SourceData.GetInt(mapping["DEX"]),
PER = SourceData.GetInt(mapping["PER"]),
LER = SourceData.GetInt(mapping["LER"]),
WIL = SourceData.GetInt(mapping["WIL"]),
MAG = SourceData.GetInt(mapping["MAG"]),
CHA = SourceData.GetInt(mapping["CHA"]),
SPD = SourceData.GetInt(mapping["SPD"]),
INT = SourceData.GetInt(mapping["INT"]),
martial = SourceData.GetInt(mapping["martial"]),
pen = SourceData.GetInt(mapping["pen"]),
elements = Core.ParseElements(SourceData.GetStr(mapping["elements"])),
skill = SourceData.GetString(mapping["skill"]),
figure = SourceData.GetString(mapping["figure"]),
geneCap = SourceData.GetInt(mapping["geneCap"]),
material = SourceData.GetString(mapping["material"]),
corpse = SourceData.GetStringArray(mapping["corpse"]),
loot = SourceData.GetStringArray(mapping["loot"]),
blood = SourceData.GetInt(mapping["blood"]),
meleeStyle = SourceData.GetString(mapping["meleeStyle"]),
castStyle = SourceData.GetString(mapping["castStyle"]),
EQ = SourceData.GetStringArray(mapping["EQ"]),
sex = SourceData.GetInt(mapping["sex"]),
age = SourceData.GetIntArray(mapping["age"]),
height = SourceData.GetInt(mapping["height"]),
breeder = SourceData.GetInt(mapping["breeder"]),
food = SourceData.GetStringArray(mapping["food"]),
fur = SourceData.GetString(mapping["fur"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void OnInit()
{
foreach (Row row in rows)SourceRecipe โ
using System;
using System.Collections.Generic;
public class SourceRecipe : SourceDataInt<SourceRecipe.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["factory"] = 1,
["type"] = 2,
["thing"] = 3,
["num"] = 4,
["sp"] = 5,
["time"] = 6,
["ing1"] = 7,
["ing2"] = 8,
["ing3"] = 9,
["tag"] = 10
};
public override Row CreateRow()
{
return new Rowpublic override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetInt(mapping["id"]),
factory = SourceData.GetString(mapping["factory"]),
type = SourceData.GetString(mapping["type"]),
thing = SourceData.GetString(mapping["thing"]),
num = SourceData.GetString(mapping["num"]),
sp = SourceData.GetInt(mapping["sp"]),
time = SourceData.GetInt(mapping["time"]),
ing1 = SourceData.GetStringArray(mapping["ing1"]),
ing2 = SourceData.GetStringArray(mapping["ing2"]),
ing3 = SourceData.GetStringArray(mapping["ing3"]),
tag = SourceData.GetStringArray(mapping["tag"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceReligion โ
using System;
using System.Collections.Generic;
public class SourceReligion : SourceDataString<SourceReligion.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["name_JP"] = 1,
["name"] = 2,
["name2_JP"] = 3,
["name2"] = 4,
["type"] = 5,
["idMaterial"] = 6,
["faith"] = 7,
["domain"] = 8,
["tax"] = 9,
["relation"] = 10,
["elements"] = 11,
["cat_offer"] = 12,
["rewards"] = 13,
["textType_JP"] = 14,
["textType"] = 15,
["textAvatar"] = 16,
["detail_JP"] = 17,
["detail"] = 18,
["textBenefit_JP"] = 19,
["textBenefit"] = 20,
["textPet_JP"] = 21,
["textPet"] = 22
};
public override string[] ImportFields => new string[3] { "textBenefit", "textType", "name2" };
public override Row CreateRow()public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
name2_JP = SourceData.GetStringArray(mapping["name2_JP"]),
name2 = SourceData.GetStringArray(mapping["name2"]),
type = SourceData.GetString(mapping["type"]),
idMaterial = SourceData.GetString(mapping["idMaterial"]),
faith = SourceData.GetString(mapping["faith"]),
domain = SourceData.GetString(mapping["domain"]),
tax = SourceData.GetInt(mapping["tax"]),
relation = SourceData.GetInt(mapping["relation"]),
elements = Core.ParseElements(SourceData.GetStr(mapping["elements"])),
cat_offer = SourceData.GetStringArray(mapping["cat_offer"]),
rewards = SourceData.GetStringArray(mapping["rewards"]),
textType_JP = SourceData.GetString(mapping["textType_JP"]),
textType = SourceData.GetString(mapping["textType"]),
textAvatar = SourceData.GetString(mapping["textAvatar"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"]),
textBenefit_JP = SourceData.GetString(mapping["textBenefit_JP"]),
textBenefit = SourceData.GetString(mapping["textBenefit"]),
textPet_JP = SourceData.GetString(mapping["textPet_JP"]),
textPet = SourceData.GetString(mapping["textPet"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceResearch โ
using System;
using System.Collections.Generic;
public class SourceResearch : SourceDataString<SourceResearch.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["name_JP"] = 1,
["name"] = 2,
["resource"] = 3,
["money"] = 4,
["tech"] = 5,
["req"] = 6,
["type"] = 7,
["expMod"] = 8,
["maxLv"] = 9,
["reward"] = 10,
["detail_JP"] = 11,
["detail"] = 12
};
public override Row CreateRow()
{
return new Rowpublic override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
resource = SourceData.GetStringArray(mapping["resource"]),
money = SourceData.GetInt(mapping["money"]),
tech = SourceData.GetInt(mapping["tech"]),
req = SourceData.GetString(mapping["req"]),
type = SourceData.GetString(mapping["type"]),
expMod = SourceData.GetInt(mapping["expMod"]),
maxLv = SourceData.GetInt(mapping["maxLv"]),
reward = SourceData.GetString(mapping["reward"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceSpawnList โ
using System;
using System.Collections.Generic;
public class SourceSpawnList : SourceDataString<SourceSpawnList.Row>
{public override string GetEditorListName()
}
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["parent"] = 2,
["type"] = 3,
["category"] = 4,
["idCard"] = 5,
["tag"] = 6,
["filter"] = 7
};
public override Row CreateRow()
{
return new Rowpublic override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
parent = SourceData.GetString(mapping["parent"]),
type = SourceData.GetString(mapping["type"]),
category = SourceData.GetStringArray(mapping["category"]),
idCard = SourceData.GetStringArray(mapping["idCard"]),
tag = SourceData.GetStringArray(mapping["tag"]),
filter = SourceData.GetStringArray(mapping["filter"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceStat โ
public override string GetAlias => alias;
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["alias"] = 1,
["name_JP"] = 2,
["name"] = 3,
["type"] = 4,
["group"] = 5,
["curse"] = 6,
["duration"] = 7,
["durationMax"] = 8,
["hexPower"] = 9,
["negate"] = 10,
["defenseAttb"] = 11,
["resistance"] = 12,
["gainRes"] = 13,
["elements"] = 14,
["nullify"] = 15,
["tag"] = 16,
["phase"] = 17,
["colors"] = 18,
["element"] = 19,
["effect"] = 20,
["strPhase_JP"] = 21,
["strPhase"] = 22,
["textPhase_JP"] = 23,
["textPhase"] = 24,
["textEnd_JP"] = 25,
["textEnd"] = 26,
["textPhase2_JP"] = 27,
["textPhase2"] = 28,
["gradient"] = 29,
["invert"] = 30,
["detail_JP"] = 31,
["detail"] = 32
};
[NonSerialized]
public Dictionary<string, List<Row>> groups = new Dictionary<string, List<Row>>();public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetInt(mapping["id"]),
alias = SourceData.GetString(mapping["alias"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
type = SourceData.GetString(mapping["type"]),
group = SourceData.GetString(mapping["group"]),
curse = SourceData.GetString(mapping["curse"]),
duration = SourceData.GetString(mapping["duration"]),
durationMax = SourceData.GetInt(mapping["durationMax"]),
hexPower = SourceData.GetInt(mapping["hexPower"]),
negate = SourceData.GetStringArray(mapping["negate"]),
defenseAttb = SourceData.GetStringArray(mapping["defenseAttb"]),
resistance = SourceData.GetStringArray(mapping["resistance"]),
gainRes = SourceData.GetInt(mapping["gainRes"]),
elements = SourceData.GetStringArray(mapping["elements"]),
nullify = SourceData.GetStringArray(mapping["nullify"]),
tag = SourceData.GetStringArray(mapping["tag"]),
phase = SourceData.GetIntArray(mapping["phase"]),
colors = SourceData.GetString(mapping["colors"]),
element = SourceData.GetString(mapping["element"]),
effect = SourceData.GetStringArray(mapping["effect"]),
strPhase_JP = SourceData.GetStringArray(mapping["strPhase_JP"]),
strPhase = SourceData.GetStringArray(mapping["strPhase"]),
textPhase_JP = SourceData.GetString(mapping["textPhase_JP"]),
textPhase = SourceData.GetString(mapping["textPhase"]),
textEnd_JP = SourceData.GetString(mapping["textEnd_JP"]),
textEnd = SourceData.GetString(mapping["textEnd"]),
textPhase2_JP = SourceData.GetString(mapping["textPhase2_JP"]),
textPhase2 = SourceData.GetString(mapping["textPhase2"]),
gradient = SourceData.GetString(mapping["gradient"]),
invert = SourceData.GetBool(mapping["invert"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void OnInit()
{
foreach (Row row in rows)SourceTactics โ
using System;
using System.Collections.Generic;
public class SourceTactics : SourceDataString<SourceTactics.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["name_JP"] = 1,
["name"] = 2,
["dist"] = 4,
["move"] = 5,
["movePC"] = 6,
["party"] = 7,
["taunt"] = 8,
["melee"] = 9,
["range"] = 10,
["spell"] = 11,
["heal"] = 12,
["summon"] = 13,
["buff"] = 14,
["debuff"] = 15,
["tag"] = 16,
["detail_JP"] = 17,
["detail"] = 18
};
public override Row CreateRow()
{
return new Rowpublic override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
dist = SourceData.GetInt(mapping["dist"]),
move = SourceData.GetInt(mapping["move"]),
movePC = SourceData.GetInt(mapping["movePC"]),
party = SourceData.GetInt(mapping["party"]),
taunt = SourceData.GetInt(mapping["taunt"]),
melee = SourceData.GetInt(mapping["melee"]),
range = SourceData.GetInt(mapping["range"]),
spell = SourceData.GetInt(mapping["spell"]),
heal = SourceData.GetInt(mapping["heal"]),
summon = SourceData.GetInt(mapping["summon"]),
buff = SourceData.GetInt(mapping["buff"]),
debuff = SourceData.GetInt(mapping["debuff"]),
tag = SourceData.GetStringArray(mapping["tag"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceThing โ
public override string GetSearchName(bool jp)
}
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["name_JP"] = 1,
["unknown_JP"] = 2,
["unit_JP"] = 3,
["naming"] = 4,
["name"] = 5,
["unit"] = 6,
["unknown"] = 7,
["category"] = 8,
["sort"] = 10,
["_tileType"] = 11,
["_idRenderData"] = 12,
["tiles"] = 13,
["altTiles"] = 14,
["anime"] = 15,
["skins"] = 16,
["size"] = 17,
["colorMod"] = 18,
["colorType"] = 19,
["recipeKey"] = 20,
["factory"] = 21,
["components"] = 22,
["disassemble"] = 23,
["defMat"] = 24,
["tierGroup"] = 25,
["value"] = 26,
["LV"] = 27,
["chance"] = 28,
["quality"] = 29,
["HP"] = 30,
["weight"] = 31,
["electricity"] = 32,
["trait"] = 33,
["elements"] = 34,
["range"] = 35,
["attackType"] = 36,
["offense"] = 37,
["substats"] = 38,
["defense"] = 39,
["lightData"] = 40,
["idExtra"] = 41,
["idToggleExtra"] = 42,
["idActorEx"] = 43,
["idSound"] = 44,
["tag"] = 45,
["workTag"] = 46,
["filter"] = 47,
["roomName_JP"] = 48,
["roomName"] = 49,
["detail_JP"] = 50,
["detail"] = 51
};
public Dictionary<string, Row> _rows = new Dictionary<string, Row>();
public override string[] ImportFields => new string[4] { "unit", "unknown", "roomName", "name2" };public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
unknown_JP = SourceData.GetString(mapping["unknown_JP"]),
unit_JP = SourceData.GetString(mapping["unit_JP"]),
naming = SourceData.GetString(mapping["naming"]),
name = SourceData.GetString(mapping["name"]),
unit = SourceData.GetString(mapping["unit"]),
unknown = SourceData.GetString(mapping["unknown"]),
category = SourceData.GetString(mapping["category"]),
sort = SourceData.GetInt(mapping["sort"]),
_tileType = SourceData.GetString(mapping["_tileType"]),
_idRenderData = SourceData.GetString(mapping["_idRenderData"]),
tiles = SourceData.GetIntArray(mapping["tiles"]),
altTiles = SourceData.GetIntArray(mapping["altTiles"]),
anime = SourceData.GetIntArray(mapping["anime"]),
skins = SourceData.GetIntArray(mapping["skins"]),
size = SourceData.GetIntArray(mapping["size"]),
colorMod = SourceData.GetInt(mapping["colorMod"]),
colorType = SourceData.GetString(mapping["colorType"]),
recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
factory = SourceData.GetStringArray(mapping["factory"]),
components = SourceData.GetStringArray(mapping["components"]),
disassemble = SourceData.GetStringArray(mapping["disassemble"]),
defMat = SourceData.GetString(mapping["defMat"]),
tierGroup = SourceData.GetString(mapping["tierGroup"]),
value = SourceData.GetInt(mapping["value"]),
LV = SourceData.GetInt(mapping["LV"]),
chance = SourceData.GetInt(mapping["chance"]),
quality = SourceData.GetInt(mapping["quality"]),
HP = SourceData.GetInt(mapping["HP"]),
weight = SourceData.GetInt(mapping["weight"]),
electricity = SourceData.GetInt(mapping["electricity"]),
trait = SourceData.GetStringArray(mapping["trait"]),
elements = Core.ParseElements(SourceData.GetStr(mapping["elements"])),
range = SourceData.GetInt(mapping["range"]),
attackType = SourceData.GetString(mapping["attackType"]),
offense = SourceData.GetIntArray(mapping["offense"]),
substats = SourceData.GetIntArray(mapping["substats"]),
defense = SourceData.GetIntArray(mapping["defense"]),
lightData = SourceData.GetString(mapping["lightData"]),
idExtra = SourceData.GetString(mapping["idExtra"]),
idToggleExtra = SourceData.GetString(mapping["idToggleExtra"]),
idActorEx = SourceData.GetString(mapping["idActorEx"]),
idSound = SourceData.GetString(mapping["idSound"]),
tag = SourceData.GetStringArray(mapping["tag"]),
workTag = SourceData.GetString(mapping["workTag"]),
filter = SourceData.GetStringArray(mapping["filter"]),
roomName_JP = SourceData.GetStringArray(mapping["roomName_JP"]),
roomName = SourceData.GetStringArray(mapping["roomName"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void BackupPref()
{
SourceAsset._SavePrefs("prefs_auto");SourceThingV โ
public class Row : SourceThing.Row
public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["_origin"] = 1,
["name_JP"] = 2,
["unit_JP"] = 3,
["name"] = 4,
["unit"] = 5,
["tiles"] = 6,
["skins"] = 7,
["parse"] = 8,
["vals"] = 9,
["trait"] = 11,
["LV"] = 12,
["chance"] = 13,
["value"] = 14,
["weight"] = 15,
["recipeKey"] = 16,
["factory"] = 17,
["components"] = 18,
["defMat"] = 19,
["category"] = 20,
["tag"] = 21,
["detail_JP"] = 22,
["detail"] = 23
};
public override string[] ImportFields => new string[1] { "unit" };
public override Row CreateRow()public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
_origin = SourceData.GetString(mapping["_origin"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
unit_JP = SourceData.GetString(mapping["unit_JP"]),
name = SourceData.GetString(mapping["name"]),
unit = SourceData.GetString(mapping["unit"]),
tiles = SourceData.GetIntArray(mapping["tiles"]),
skins = SourceData.GetIntArray(mapping["skins"]),
parse = SourceData.GetStringArray(mapping["parse"]),
vals = SourceData.GetStringArray(mapping["vals"]),
trait = SourceData.GetStringArray(mapping["trait"]),
LV = SourceData.GetInt(mapping["LV"]),
chance = SourceData.GetInt(mapping["chance"]),
value = SourceData.GetInt(mapping["value"]),
weight = SourceData.GetInt(mapping["weight"]),
recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
factory = SourceData.GetStringArray(mapping["factory"]),
components = SourceData.GetStringArray(mapping["components"]),
defMat = SourceData.GetString(mapping["defMat"]),
category = SourceData.GetString(mapping["category"]),
tag = SourceData.GetStringArray(mapping["tag"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
public override void RestorePref()
{
foreach (SourceThing.Row row2 in EClass.sources.things.rows)SourceZone โ
using System;
using System.Collections.Generic;
public class SourceZone : SourceDataString<SourceZone.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["parent"] = 1,
["name_JP"] = 2,
["name"] = 3,
["type"] = 4,
["LV"] = 5,
["chance"] = 6,
["faction"] = 7,
["value"] = 8,
["idProfile"] = 9,
["idFile"] = 10,
["idBiome"] = 11,
["idGen"] = 12,
["idPlaylist"] = 13,
["tag"] = 14,
["cost"] = 15,
["dev"] = 16,
["image"] = 17,
["pos"] = 18,
["questTag"] = 19,
["textFlavor_JP"] = 20,
["textFlavor"] = 21,
["detail_JP"] = 22,
["detail"] = 23
};
public override string[] ImportFields => new string[1] { "textFlavor" };
public override Row CreateRow()public override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetString(mapping["id"]),
parent = SourceData.GetString(mapping["parent"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
type = SourceData.GetString(mapping["type"]),
LV = SourceData.GetInt(mapping["LV"]),
chance = SourceData.GetInt(mapping["chance"]),
faction = SourceData.GetString(mapping["faction"]),
value = SourceData.GetInt(mapping["value"]),
idProfile = SourceData.GetString(mapping["idProfile"]),
idFile = SourceData.GetStringArray(mapping["idFile"]),
idBiome = SourceData.GetString(mapping["idBiome"]),
idGen = SourceData.GetString(mapping["idGen"]),
idPlaylist = SourceData.GetString(mapping["idPlaylist"]),
tag = SourceData.GetStringArray(mapping["tag"]),
cost = SourceData.GetInt(mapping["cost"]),
dev = SourceData.GetInt(mapping["dev"]),
image = SourceData.GetString(mapping["image"]),
pos = SourceData.GetIntArray(mapping["pos"]),
questTag = SourceData.GetStringArray(mapping["questTag"]),
textFlavor_JP = SourceData.GetString(mapping["textFlavor_JP"]),
textFlavor = SourceData.GetString(mapping["textFlavor"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}SourceZoneAffix โ
using System;
using System.Collections.Generic;
public class SourceZoneAffix : SourceDataInt<SourceZoneAffix.Row>
{ public override string GetAlias => "n";
}
public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
{
["id"] = 0,
["zone"] = 1,
["name_JP"] = 2,
["name"] = 3,
["textAssign_JP"] = 4,
["textAssign"] = 5,
["detail_JP"] = 6,
["detail"] = 7
};
public override Row CreateRow()
{
return new Rowpublic override Row CreateRow()
};
}
public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
{
return new Row
{
id = SourceData.GetInt(mapping["id"]),
zone = SourceData.GetString(mapping["zone"]),
name_JP = SourceData.GetString(mapping["name_JP"]),
name = SourceData.GetString(mapping["name"]),
textAssign_JP = SourceData.GetString(mapping["textAssign_JP"]),
textAssign = SourceData.GetString(mapping["textAssign"]),
detail_JP = SourceData.GetString(mapping["detail_JP"]),
detail = SourceData.GetString(mapping["detail"])
};
}
public override void SetRow(Row r)
{
map[r.id] = r;
}
public override IReadOnlyDictionary<string, int> GetRowMapping()
{
return RowMapping;
}
}+StanceMama โ
File Created
public class StanceMama : BaseStance
{
}SurvivalManager โ
case "loytel":
case "nino":
case "big_daddy":
case "big_daddy2":
case "littleOne":
case "sorin":
case "vesda":TCOrbitChara โ
public override void RefreshAll()
{
num = (float)(owner.hp + owner.mana.value) / (float)(owner.MaxHP + owner.mana.max);
}
showHP = num < 0.9f && (owner.IsPCParty || owner.IsHostile() || (owner.enemy != null && owner.enemy.IsPCParty));
showHP = num < 0.9f && (owner.IsPCParty || owner.IsHostile() || (owner.enemy != null && owner.enemy.IsPCParty)) && !owner.IsPCFactionMinion;
if (showHP)
{
if (flag2)TaskBuild โ
public override HitResult GetHitResult()
{
return HitResult.Invalid;
}
if (useHeld && EClass.pc.held != null && EClass.pc.held.trait is TraitFloorDeco && lastPos.Equals(pos))
{
return HitResult.Default;
}
}
if (0 == 0 && recipe.HasSameTile(pos, recipe._dir, altitude, bridgeHeight))
{public override void OnProgressComplete()
ActionMode.Build.FixBridge(pos, recipe);
bridgeHeight = ActionMode.Build.bridgeHeight;
target = (owner.held.category.installOne ? owner.held.Split(1) : owner.held);
if (target.trait is TraitTile)
if (target.trait is TraitTile { ConsumeOnUse: not false })
{
target.ModNum(-1);
}Thing โ
public override void WriteNote(UINote n, Action<UINote> onWriteNote = null, IIns
AddText("isDangerLv".lang((GetInt(25) + 1).ToString() ?? "", (EClass.pc.FameLv + 10).ToString() ?? ""), FontColor.Default);
}
FontColor col2 = FontColor.Util;
if (trait is TraitTool && !(trait is TraitToolRange))
if (trait is TraitToolCrowbar)
{
AddText("canPryOpen", col2);
}
else if (trait is TraitTool && !(trait is TraitToolRange))
{
if (HasElement(220))
{ThingGen โ
public static Thing CreateFloor(int id, int idMat, bool platform = false)
return thing;
}
public static Thing CreateDeco(int id, int idMat)
{
_ = EClass.sources.decos.rows[id];
Thing thing = Create("deco", idMat);
thing.refVal = id;
return thing;
}
public static Thing CreateObj(int id, int idMat)
{
_ = EClass.sources.objs.rows[id];TileType โ
public static TileTypeWaterfall Waterfall = new TileTypeWaterfall();
public static TileTypeBlockDeco BlockDeco = new TileTypeBlockDeco();
public static TileTypeFloorDeco FloorDeco = new TileTypeFloorDeco();
public static TileTypeWall Wall = new TileTypeWall();
public static TileTypeWallOpen WallOpen = new TileTypeWallOpen();+TileTypeBlockDeco โ
File Created
public class TileTypeBlockDeco : TileTypeFloor
{
public override bool CastShadowSelf => false;
}+TileTypeFloorDeco โ
File Created
public class TileTypeFloorDeco : TileTypeFloor
{
public override bool IsFloorOrBridge => false;
public override bool IsFloor => false;
}+TraitFloorDeco โ
File Created
public class TraitFloorDeco : TraitTile
{
public override bool ConsumeOnUse => false;
public override TileRow source => EClass.sources.decos.rows[owner.refVal];
}TraitSpotBiome โ
thing.SetPriceFix(-100);
EClass._zone.AddCard(thing, randomPoint).Install();
}
if (EClass.rnd(40) == 0 && EClass._map.FindChara("big_daddy") == null)
if (EClass.rnd(40) == 0 && EClass._map.FindChara("big_daddy") == null && EClass._map.FindChara("big_daddy2") == null)
{
CardBlueprint.Set(new CardBlueprint
{
lv = EClass.game.survival.flags.raidLv + 10
});
Chara t = CharaGen.Create("big_daddy");
Chara t = CharaGen.Create((EClass.rnd(2) == 0) ? "big_daddy" : "big_daddy2");
EClass._zone.AddCard(t, randomPoint);
Msg.Say("sign_bigdaddy");
}TraitTile โ
public class TraitTile : Trait
public virtual string suffix => "";
public virtual bool ConsumeOnUse => true;
public override bool CanExtendBuild => true;
public override bool CanBuildInTown => false;Zone โ
public Chara TryGenerateEvolved(bool force = false, Point p = null)
public void TryGenerateBigDaddy()
{
if (!(BigDaddyChance * (EClass.pc.HasElement(1270) ? 1.1f : 1f) <= EClass.rndf(1f)))
{
Point spawnPos = GetSpawnPos(SpawnPosition.Random, 10000);
List<string> list = new List<string> { "big_daddy", "big_daddy2" };
list.Shuffle();
Spawn(list[0], spawnPos);
if (EClass.rnd(EClass.debug.enable ? 2 : 20) == 0)
{
Spawn(list[1], spawnPos.GetNearestPoint(allowBlock: false, allowChara: false));
}
Msg.Say("sign_bigdaddy");
}
void Spawn(string id, Point pos)
{
int num = (int)((long)DangerLv * 125L / 100);
if (num >= 30)public void TryGenerateBigDaddy()
lv = num
});
}
Chara chara = CharaGen.Create("big_daddy");
Chara chara = CharaGen.Create(id);
if (EClass.pc.HasElement(1270))
{
chara.SetHostility(Hostility.Friend);public void TryGenerateBigDaddy()
{
chara.SetHostility(Hostility.Enemy);
}
EClass._zone.AddCard(chara, GetSpawnPos(SpawnPosition.Random, 10000));
Msg.Say("sign_bigdaddy");
EClass._zone.AddCard(chara, pos);
}
}