// Token: 0x0600347A RID: 13434 RVA: 0x00158C54 File Offset: 0x00157054 private static void exportZombies(string path, Data spawnsData, ref ushort id, bool isLegacy) { for (int i = 0; i < LevelZombies.tables.Count; i++) { ZombieTable zombieTable = LevelZombies.tables[i]; if (zombieTable.lootID == 0 && (int)zombieTable.lootIndex < LevelItems.tables.Count) { zombieTable.lootID = LevelItems.tables[(int)zombieTable.lootIndex].tableID; } } }
// Token: 0x060024E1 RID: 9441 RVA: 0x000D3130 File Offset: 0x000D1530 public static void removeTable() { LevelItems.tables.RemoveAt((int)EditorSpawns.selectedItem); for (byte b = 0; b < Regions.WORLD_SIZE; b += 1) { for (byte b2 = 0; b2 < Regions.WORLD_SIZE; b2 += 1) { List <ItemSpawnpoint> list = new List <ItemSpawnpoint>(); for (int i = 0; i < LevelItems.spawns[(int)b, (int)b2].Count; i++) { ItemSpawnpoint itemSpawnpoint = LevelItems.spawns[(int)b, (int)b2][i]; if (itemSpawnpoint.type == EditorSpawns.selectedItem) { UnityEngine.Object.Destroy(itemSpawnpoint.node.gameObject); } else { if (itemSpawnpoint.type > EditorSpawns.selectedItem) { ItemSpawnpoint itemSpawnpoint2 = itemSpawnpoint; itemSpawnpoint2.type -= 1; } list.Add(itemSpawnpoint); } } LevelItems._spawns[(int)b, (int)b2] = list; } } for (int j = 0; j < LevelZombies.tables.Count; j++) { ZombieTable zombieTable = LevelZombies.tables[j]; if (zombieTable.lootIndex > EditorSpawns.selectedItem) { ZombieTable zombieTable2 = zombieTable; zombieTable2.lootIndex -= 1; } } EditorSpawns.selectedItem = 0; if ((int)EditorSpawns.selectedItem < LevelItems.tables.Count) { EditorSpawns.itemSpawn.GetComponent <Renderer>().material.color = LevelItems.tables[(int)EditorSpawns.selectedItem].color; } }
public static void save() { Block block = new Block(); block.writeByte(LevelZombies.SAVEDATA_TABLE_VERSION); block.writeByte((byte)LevelZombies.tables.Count); byte b = 0; while ((int)b < LevelZombies.tables.Count) { ZombieTable zombieTable = LevelZombies.tables[(int)b]; block.writeColor(zombieTable.color); block.writeString(zombieTable.name); block.writeBoolean(zombieTable.isMega); block.writeUInt16(zombieTable.health); block.writeByte(zombieTable.damage); block.writeByte(zombieTable.lootIndex); block.writeUInt16(zombieTable.lootID); block.writeUInt32(zombieTable.xp); block.writeSingle(zombieTable.regen); block.writeString(zombieTable.difficultyGUID); block.write((byte)zombieTable.slots.Length); byte b2 = 0; while ((int)b2 < zombieTable.slots.Length) { ZombieSlot zombieSlot = zombieTable.slots[(int)b2]; block.writeSingle(zombieSlot.chance); block.writeByte((byte)zombieSlot.table.Count); byte b3 = 0; while ((int)b3 < zombieSlot.table.Count) { ZombieCloth zombieCloth = zombieSlot.table[(int)b3]; block.writeUInt16(zombieCloth.item); b3 += 1; } b2 += 1; } b += 1; } ReadWrite.writeBlock(Level.info.path + "/Spawns/Zombies.dat", false, false, block); River river = new River(Level.info.path + "/Spawns/Animals.dat", false); river.writeByte(LevelZombies.SAVEDATA_SPAWN_VERSION); for (byte b4 = 0; b4 < Regions.WORLD_SIZE; b4 += 1) { for (byte b5 = 0; b5 < Regions.WORLD_SIZE; b5 += 1) { List <ZombieSpawnpoint> list = LevelZombies.spawns[(int)b4, (int)b5]; river.writeUInt16((ushort)list.Count); ushort num = 0; while ((int)num < list.Count) { ZombieSpawnpoint zombieSpawnpoint = list[(int)num]; river.writeByte(zombieSpawnpoint.type); river.writeSingleVector3(zombieSpawnpoint.point); num += 1; } } } river.closeRiver(); }
public static void apply(Transform zombie, bool isMega, SkinnedMeshRenderer renderer_0, SkinnedMeshRenderer renderer_1, byte type, byte shirt, byte pants, byte hat, byte gear, out Transform attachmentModel_0, out Transform attachmentModel_1) { attachmentModel_0 = null; attachmentModel_1 = null; Transform transform = zombie.FindChild("Skeleton"); Transform transform2 = transform.FindChild("Spine"); Transform transform3 = transform2.FindChild("Skull"); ZombieTable zombieTable = LevelZombies.tables[(int)type]; if (shirt == 255) { shirt = (byte)zombieTable.slots[0].table.Count; } if (pants == 255) { pants = (byte)zombieTable.slots[1].table.Count; } Material sharedMaterial = ZombieClothing.clothes[(int)type][(int)shirt, (int)pants]; if (renderer_0 != null) { renderer_0.sharedMesh = ((!isMega) ? ZombieClothing.zombieMesh_0 : ZombieClothing.megaMesh_0); renderer_0.sharedMaterial = sharedMaterial; } if (renderer_1 != null) { renderer_1.sharedMesh = ((!isMega) ? ZombieClothing.zombieMesh_1 : ZombieClothing.megaMesh_1); renderer_1.sharedMaterial = sharedMaterial; } Transform transform4 = transform3.FindChild("Hat"); if (transform4 != null) { Object.Destroy(transform4.gameObject); } Transform transform5 = transform2.FindChild("Backpack"); if (transform5 != null) { Object.Destroy(transform5.gameObject); } Transform transform6 = transform2.FindChild("Vest"); if (transform6 != null) { Object.Destroy(transform6.gameObject); } Transform transform7 = transform3.FindChild("Mask"); if (transform7 != null) { Object.Destroy(transform7.gameObject); } Transform transform8 = transform3.FindChild("Glasses"); if (transform8 != null) { Object.Destroy(transform8.gameObject); } if (hat != 255) { ItemAsset itemAsset = (ItemAsset)Assets.find(EAssetType.ITEM, zombieTable.slots[2].table[(int)hat].item); if (itemAsset != null) { if (itemAsset.type == EItemType.HAT) { transform4 = Object.Instantiate <GameObject>(((ItemHatAsset)itemAsset).hat).transform; transform4.name = "Hat"; transform4.transform.parent = transform3; transform4.transform.localPosition = Vector3.zero; transform4.transform.localRotation = Quaternion.identity; transform4.transform.localScale = Vector3.one; Object.Destroy(transform4.GetComponent <Collider>()); attachmentModel_0 = transform4.transform; } else if (itemAsset.type == EItemType.BACKPACK) { transform5 = Object.Instantiate <GameObject>(((ItemBackpackAsset)itemAsset).backpack).transform; transform5.name = "Backpack"; transform5.transform.parent = transform2; transform5.transform.localPosition = Vector3.zero; transform5.transform.localRotation = Quaternion.identity; transform5.transform.localScale = ((!isMega) ? Vector3.one : new Vector3(1.05f, 1f, 1.1f)); Object.Destroy(transform5.GetComponent <Collider>()); attachmentModel_0 = transform5.transform; } else if (itemAsset.type == EItemType.VEST) { transform6 = Object.Instantiate <GameObject>(((ItemVestAsset)itemAsset).vest).transform; transform6.name = "Vest"; transform6.transform.parent = transform2; transform6.transform.localPosition = Vector3.zero; transform6.transform.localRotation = Quaternion.identity; transform6.transform.localScale = ((!isMega) ? Vector3.one : new Vector3(1.05f, 1f, 1.1f)); Object.Destroy(transform6.GetComponent <Collider>()); attachmentModel_0 = transform6.transform; } else if (itemAsset.type == EItemType.MASK) { transform7 = Object.Instantiate <GameObject>(((ItemMaskAsset)itemAsset).mask).transform; transform7.name = "Mask"; transform7.transform.parent = transform3; transform7.transform.localPosition = Vector3.zero; transform7.transform.localRotation = Quaternion.identity; transform7.transform.localScale = Vector3.one; Object.Destroy(transform7.GetComponent <Collider>()); attachmentModel_0 = transform7.transform; } else if (itemAsset.type == EItemType.GLASSES) { transform8 = Object.Instantiate <GameObject>(((ItemGlassesAsset)itemAsset).glasses).transform; transform8.name = "Glasses"; transform8.transform.parent = transform3; transform8.transform.localPosition = Vector3.zero; transform8.transform.localRotation = Quaternion.identity; transform8.transform.localScale = Vector3.one; Object.Destroy(transform8.GetComponent <Collider>()); attachmentModel_0 = transform8.transform; } } } if (gear != 255) { ItemAsset itemAsset2 = (ItemAsset)Assets.find(EAssetType.ITEM, zombieTable.slots[3].table[(int)gear].item); if (itemAsset2 != null) { if (itemAsset2.type == EItemType.HAT) { transform4 = Object.Instantiate <GameObject>(((ItemHatAsset)itemAsset2).hat).transform; transform4.name = "Hat"; transform4.transform.parent = transform3; transform4.transform.localPosition = Vector3.zero; transform4.transform.localRotation = Quaternion.identity; transform4.transform.localScale = Vector3.one; Object.Destroy(transform4.GetComponent <Collider>()); attachmentModel_1 = transform4.transform; } else if (itemAsset2.type == EItemType.BACKPACK) { transform5 = Object.Instantiate <GameObject>(((ItemBackpackAsset)itemAsset2).backpack).transform; transform5.name = "Backpack"; transform5.transform.parent = transform2; transform5.transform.localPosition = Vector3.zero; transform5.transform.localRotation = Quaternion.identity; transform5.transform.localScale = ((!isMega) ? Vector3.one : new Vector3(1.05f, 1f, 1.1f)); Object.Destroy(transform5.GetComponent <Collider>()); attachmentModel_1 = transform5.transform; } else if (itemAsset2.type == EItemType.VEST) { transform6 = Object.Instantiate <GameObject>(((ItemVestAsset)itemAsset2).vest).transform; transform6.name = "Vest"; transform6.transform.parent = transform2; transform6.transform.localPosition = Vector3.zero; transform6.transform.localRotation = Quaternion.identity; transform6.transform.localScale = ((!isMega) ? Vector3.one : new Vector3(1.05f, 1f, 1.1f)); Object.Destroy(transform6.GetComponent <Collider>()); attachmentModel_1 = transform6.transform; } else if (itemAsset2.type == EItemType.MASK) { transform7 = Object.Instantiate <GameObject>(((ItemMaskAsset)itemAsset2).mask).transform; transform7.name = "Mask"; transform7.transform.parent = transform3; transform7.transform.localPosition = Vector3.zero; transform7.transform.localRotation = Quaternion.identity; transform7.transform.localScale = Vector3.one; Object.Destroy(transform7.GetComponent <Collider>()); attachmentModel_1 = transform7.transform; } else if (itemAsset2.type == EItemType.GLASSES) { transform8 = Object.Instantiate <GameObject>(((ItemGlassesAsset)itemAsset2).glasses).transform; transform8.name = "Glasses"; transform8.transform.parent = transform3; transform8.transform.localPosition = Vector3.zero; transform8.transform.localRotation = Quaternion.identity; transform8.transform.localScale = Vector3.one; Object.Destroy(transform8.GetComponent <Collider>()); attachmentModel_1 = transform8.transform; } } } }
public static void build() { if (ZombieClothing.ghostMaterial == null) { ZombieClothing.ghostMaterial = (Material)Resources.Load("Characters/Ghost"); } if (ZombieClothing.megaMesh_0 == null) { ZombieClothing.megaMesh_0 = ((GameObject)Resources.Load("Characters/Mega_0")).GetComponent <MeshFilter>().sharedMesh; } if (ZombieClothing.megaMesh_1 == null) { ZombieClothing.megaMesh_1 = ((GameObject)Resources.Load("Characters/Mega_1")).GetComponent <MeshFilter>().sharedMesh; } if (ZombieClothing.zombieMesh_0 == null) { ZombieClothing.zombieMesh_0 = ((GameObject)Resources.Load("Characters/Zombie_0")).GetComponent <MeshFilter>().sharedMesh; } if (ZombieClothing.zombieMesh_1 == null) { ZombieClothing.zombieMesh_1 = ((GameObject)Resources.Load("Characters/Zombie_1")).GetComponent <MeshFilter>().sharedMesh; } if (ZombieClothing.megaTexture == null) { ZombieClothing.megaTexture = (Texture2D)Resources.Load("Characters/Mega"); } if (ZombieClothing.zombieTexture == null) { ZombieClothing.zombieTexture = (Texture2D)Resources.Load("Characters/Zombie"); } if (ZombieClothing.shader == null) { ZombieClothing.shader = Shader.Find("Standard"); } if (ZombieClothing.clothes != null) { for (int i = 0; i < ZombieClothing.clothes.GetLength(0); i++) { for (int j = 0; j < ZombieClothing.clothes[i].GetLength(0); j++) { for (int k = 0; k < ZombieClothing.clothes[i].GetLength(1); k++) { if (ZombieClothing.clothes[i][j, k] != null) { Object.DestroyImmediate(ZombieClothing.clothes[i][j, k].mainTexture); Object.DestroyImmediate(ZombieClothing.clothes[i][j, k]); ZombieClothing.clothes[i][j, k] = null; } } } } } if (LevelZombies.tables == null) { ZombieClothing.clothes = null; return; } ZombieClothing.clothes = new Material[LevelZombies.tables.Count][, ]; byte b = 0; while ((int)b < LevelZombies.tables.Count) { ZombieTable zombieTable = LevelZombies.tables[(int)b]; ZombieClothing.clothes[(int)b] = new Material[zombieTable.slots[0].table.Count + 1, zombieTable.slots[1].table.Count + 1]; byte b2 = 0; while ((int)b2 < zombieTable.slots[0].table.Count + 1) { ushort shirt = 0; if ((int)b2 < zombieTable.slots[0].table.Count) { shirt = zombieTable.slots[0].table[(int)b2].item; } byte b3 = 0; while ((int)b3 < zombieTable.slots[1].table.Count + 1) { ushort pants = 0; if ((int)b3 < zombieTable.slots[1].table.Count) { pants = zombieTable.slots[1].table[(int)b3].item; } ZombieClothing.clothes[(int)b][(int)b2, (int)b3] = ZombieClothing.paint(shirt, pants, zombieTable.isMega); b3 += 1; } b2 += 1; } b += 1; } }
public static void updateSelection() { if ((int)EditorSpawns.selectedZombie < LevelZombies.tables.Count) { ZombieTable zombieTable = LevelZombies.tables[(int)EditorSpawns.selectedZombie]; EditorSpawnsZombiesUI.selectedBox.text = zombieTable.name; EditorSpawnsZombiesUI.tableNameField.text = zombieTable.name; EditorSpawnsZombiesUI.tableColorPicker.state = zombieTable.color; EditorSpawnsZombiesUI.megaToggle.state = zombieTable.isMega; EditorSpawnsZombiesUI.healthField.state = zombieTable.health; EditorSpawnsZombiesUI.damageField.state = zombieTable.damage; EditorSpawnsZombiesUI.lootIndexField.state = zombieTable.lootIndex; EditorSpawnsZombiesUI.lootIDField.state = zombieTable.lootID; EditorSpawnsZombiesUI.xpField.state = zombieTable.xp; EditorSpawnsZombiesUI.regenField.state = zombieTable.regen; EditorSpawnsZombiesUI.difficultyGUIDField.text = zombieTable.difficultyGUID; if (EditorSpawnsZombiesUI.slotButtons != null) { for (int i = 0; i < EditorSpawnsZombiesUI.slotButtons.Length; i++) { EditorSpawnsZombiesUI.spawnsScrollBox.remove(EditorSpawnsZombiesUI.slotButtons[i]); } } EditorSpawnsZombiesUI.slotButtons = new SleekButton[zombieTable.slots.Length]; for (int j = 0; j < EditorSpawnsZombiesUI.slotButtons.Length; j++) { ZombieSlot zombieSlot = zombieTable.slots[j]; SleekButton sleekButton = new SleekButton(); sleekButton.positionOffset_X = 240; sleekButton.positionOffset_Y = 460 + j * 70; sleekButton.sizeOffset_X = 200; sleekButton.sizeOffset_Y = 30; sleekButton.text = EditorSpawnsZombiesUI.localization.format("Slot_" + j); SleekButton sleekButton2 = sleekButton; if (EditorSpawnsZombiesUI.< > f__mg$cache1 == null) { EditorSpawnsZombiesUI.< > f__mg$cache1 = new ClickedButton(EditorSpawnsZombiesUI.onClickedSlotButton); } sleekButton2.onClickedButton = EditorSpawnsZombiesUI.< > f__mg$cache1; EditorSpawnsZombiesUI.spawnsScrollBox.add(sleekButton); SleekSlider sleekSlider = new SleekSlider(); sleekSlider.positionOffset_Y = 40; sleekSlider.sizeOffset_X = 200; sleekSlider.sizeOffset_Y = 20; sleekSlider.orientation = ESleekOrientation.HORIZONTAL; sleekSlider.state = zombieSlot.chance; sleekSlider.addLabel(Mathf.RoundToInt(zombieSlot.chance * 100f) + "%", ESleekSide.LEFT); SleekSlider sleekSlider2 = sleekSlider; if (EditorSpawnsZombiesUI.< > f__mg$cache2 == null) { EditorSpawnsZombiesUI.< > f__mg$cache2 = new Dragged(EditorSpawnsZombiesUI.onDraggedChanceSlider); } sleekSlider2.onDragged = EditorSpawnsZombiesUI.< > f__mg$cache2; sleekButton.add(sleekSlider); EditorSpawnsZombiesUI.slotButtons[j] = sleekButton; } if (EditorSpawnsZombiesUI.clothButtons != null) { for (int k = 0; k < EditorSpawnsZombiesUI.clothButtons.Length; k++) { EditorSpawnsZombiesUI.spawnsScrollBox.remove(EditorSpawnsZombiesUI.clothButtons[k]); } } if ((int)EditorSpawnsZombiesUI.selectedSlot < zombieTable.slots.Length) { EditorSpawnsZombiesUI.clothButtons = new SleekButton[zombieTable.slots[(int)EditorSpawnsZombiesUI.selectedSlot].table.Count]; for (int l = 0; l < EditorSpawnsZombiesUI.clothButtons.Length; l++) { SleekButton sleekButton3 = new SleekButton(); sleekButton3.positionOffset_X = 240; sleekButton3.positionOffset_Y = 460 + EditorSpawnsZombiesUI.slotButtons.Length * 70 + l * 40; sleekButton3.sizeOffset_X = 200; sleekButton3.sizeOffset_Y = 30; ItemAsset itemAsset = (ItemAsset)Assets.find(EAssetType.ITEM, zombieTable.slots[(int)EditorSpawnsZombiesUI.selectedSlot].table[l].item); string str = "?"; if (itemAsset != null) { if (string.IsNullOrEmpty(itemAsset.itemName)) { str = itemAsset.name; } else { str = itemAsset.itemName; } } sleekButton3.text = zombieTable.slots[(int)EditorSpawnsZombiesUI.selectedSlot].table[l].item.ToString() + " " + str; SleekButton sleekButton4 = sleekButton3; if (EditorSpawnsZombiesUI.< > f__mg$cache3 == null) { EditorSpawnsZombiesUI.< > f__mg$cache3 = new ClickedButton(EditorSpawnsZombiesUI.onClickItemButton); } sleekButton4.onClickedButton = EditorSpawnsZombiesUI.< > f__mg$cache3; EditorSpawnsZombiesUI.spawnsScrollBox.add(sleekButton3); EditorSpawnsZombiesUI.clothButtons[l] = sleekButton3; } } else { EditorSpawnsZombiesUI.clothButtons = new SleekButton[0]; } EditorSpawnsZombiesUI.itemIDField.positionOffset_Y = 460 + EditorSpawnsZombiesUI.slotButtons.Length * 70 + EditorSpawnsZombiesUI.clothButtons.Length * 40; EditorSpawnsZombiesUI.addItemButton.positionOffset_Y = 460 + EditorSpawnsZombiesUI.slotButtons.Length * 70 + EditorSpawnsZombiesUI.clothButtons.Length * 40 + 40; EditorSpawnsZombiesUI.removeItemButton.positionOffset_Y = 460 + EditorSpawnsZombiesUI.slotButtons.Length * 70 + EditorSpawnsZombiesUI.clothButtons.Length * 40 + 40; EditorSpawnsZombiesUI.spawnsScrollBox.area = new Rect(0f, 0f, 5f, (float)(460 + EditorSpawnsZombiesUI.slotButtons.Length * 70 + EditorSpawnsZombiesUI.clothButtons.Length * 40 + 70)); } else { EditorSpawnsZombiesUI.selectedBox.text = string.Empty; EditorSpawnsZombiesUI.tableNameField.text = string.Empty; EditorSpawnsZombiesUI.tableColorPicker.state = Color.white; EditorSpawnsZombiesUI.megaToggle.state = false; EditorSpawnsZombiesUI.healthField.state = 0; EditorSpawnsZombiesUI.damageField.state = 0; EditorSpawnsZombiesUI.lootIndexField.state = 0; EditorSpawnsZombiesUI.lootIDField.state = 0; EditorSpawnsZombiesUI.xpField.state = 0u; EditorSpawnsZombiesUI.regenField.state = 0f; EditorSpawnsZombiesUI.difficultyGUIDField.text = string.Empty; if (EditorSpawnsZombiesUI.slotButtons != null) { for (int m = 0; m < EditorSpawnsZombiesUI.slotButtons.Length; m++) { EditorSpawnsZombiesUI.spawnsScrollBox.remove(EditorSpawnsZombiesUI.slotButtons[m]); } } EditorSpawnsZombiesUI.slotButtons = null; if (EditorSpawnsZombiesUI.clothButtons != null) { for (int n = 0; n < EditorSpawnsZombiesUI.clothButtons.Length; n++) { EditorSpawnsZombiesUI.spawnsScrollBox.remove(EditorSpawnsZombiesUI.clothButtons[n]); } } EditorSpawnsZombiesUI.clothButtons = null; EditorSpawnsZombiesUI.itemIDField.positionOffset_Y = 460; EditorSpawnsZombiesUI.addItemButton.positionOffset_Y = 500; EditorSpawnsZombiesUI.removeItemButton.positionOffset_Y = 500; EditorSpawnsZombiesUI.spawnsScrollBox.area = new Rect(0f, 0f, 5f, 530f); } }