Add new sprites for some tree objects in Jungle...

* Also renamed a couple classes in ExpandPrefabs to be simplar/easier to
find.
This commit is contained in:
ApacheThunder 2023-04-06 18:39:17 -05:00
parent c90c3fdb1d
commit acd2f9fd98
45 changed files with 167 additions and 139 deletions

View File

@ -1,5 +1,5 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 1216126238 CRC: 3602897831
AssetBundleManifest: AssetBundleManifest:
AssetBundleInfos: AssetBundleInfos:
Info_0: Info_0:

View File

@ -1,9 +1,9 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 4037480594 CRC: 3937097182
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: a7168a278c52302407b96741ddf7f159 Hash: 48c1897f0032b2a33fbef7c72666f38d
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 2241b0dac22d22b9de2222ad79842819 Hash: 2241b0dac22d22b9de2222ad79842819
@ -1053,6 +1053,7 @@ Assets:
- Assets/ExpandPrefabs/SpriteCollections/Misc/EXOfficeCollection.prefab - Assets/ExpandPrefabs/SpriteCollections/Misc/EXOfficeCollection.prefab
- Assets/ExpandSerializedData/TilesetData/Nakatomi/Nakatomi_Blue/facewallGrids_2_grid.txt - Assets/ExpandSerializedData/TilesetData/Nakatomi/Nakatomi_Blue/facewallGrids_2_grid.txt
- Assets/ExpandSerializedData/SpriteCollections/EXPortableElevatorCollection.txt - Assets/ExpandSerializedData/SpriteCollections/EXPortableElevatorCollection.txt
- Assets/ExpandTextures/Misc/JungleOcclusionTest.png
- Assets/ExpandSerializedData/SpriteCollections/EXSecretDoorCollection.txt - Assets/ExpandSerializedData/SpriteCollections/EXSecretDoorCollection.txt
- Assets/ExpandSerializedData/SpriteCollections/GungeoneerMimicCollection.txt - Assets/ExpandSerializedData/SpriteCollections/GungeoneerMimicCollection.txt
- Assets/ExpandTextures/SpriteCollections/Misc/EXLargeMonster_Collection.png - Assets/ExpandTextures/SpriteCollections/Misc/EXLargeMonster_Collection.png

View File

@ -1,9 +1,9 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 3133764107 CRC: 1620197715
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: ee61bc3441ab5c2f2bf5d6f664f16fae Hash: 0a024bbee988145ff8a96ef6a1b60a56
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: c73412a662fd4e4f36af34cbdf078b85 Hash: c73412a662fd4e4f36af34cbdf078b85
@ -61,6 +61,7 @@ Assets:
- Assets/ExpandSprites/AIActors/BootlegShotgunManBlue_Collection/shotgunman_blue_move_left_002.png - Assets/ExpandSprites/AIActors/BootlegShotgunManBlue_Collection/shotgunman_blue_move_left_002.png
- Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_move_front_left_001.png - Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_move_front_left_001.png
- Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_dodge_front_left_003.png - Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_dodge_front_left_003.png
- Assets/ExpandSprites/Misc/EXJungle_Collection/Jungle_Tree_Small.png
- Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_idle_front_002.png - Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_idle_front_002.png
- Assets/ExpandSprites/AIActors/Cronenberg_Collection/Cronenberg_Spawn_001.png - Assets/ExpandSprites/AIActors/Cronenberg_Collection/Cronenberg_Spawn_001.png
- Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_dodge_front_right_005.png - Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_dodge_front_right_005.png
@ -105,11 +106,13 @@ Assets:
- Assets/ExpandSprites/AIActors/BootlegShotgunManBlue_Collection/shotgunman_blue_hit_right.png - Assets/ExpandSprites/AIActors/BootlegShotgunManBlue_Collection/shotgunman_blue_hit_right.png
- Assets/ExpandSprites/Misc/EXChest_Collection/chest_west_shadow.png - Assets/ExpandSprites/Misc/EXChest_Collection/chest_west_shadow.png
- Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_dodge_back_right_009.png - Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_dodge_back_right_009.png
- Assets/ExpandSprites/Misc/EXJungle_Collection/Jungle_Tree_Small_Shadow.png
- Assets/ExpandSprites/AIActors/WestBrosCollection/gr_tuc_rev_fire_001.png - Assets/ExpandSprites/AIActors/WestBrosCollection/gr_tuc_rev_fire_001.png
- Assets/ExpandSprites/GunsAndItems/EXItem_Collection/corrupted_poopsack_09.png - Assets/ExpandSprites/GunsAndItems/EXItem_Collection/corrupted_poopsack_09.png
- Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_idle_back_right_004.png - Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_idle_back_right_004.png
- Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_idle_front_left_004.png - Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_idle_front_left_004.png
- Assets/ExpandSprites/GunsAndItems/EXItem_Collection/babygoodhammer_spawn_02.png - Assets/ExpandSprites/GunsAndItems/EXItem_Collection/babygoodhammer_spawn_02.png
- Assets/ExpandSprites/Misc/EXJungle_Collection/Jungle_Tree_Medium_Stump.png
- Assets/ExpandSprites/AIActors/WestBrosCollection/gr_golden_revolver_idle_004.png - Assets/ExpandSprites/AIActors/WestBrosCollection/gr_golden_revolver_idle_004.png
- Assets/ExpandSprites/Misc/EXOffice_Collection/office_one_way_blocker_horizontal_bottom_001.png - Assets/ExpandSprites/Misc/EXOffice_Collection/office_one_way_blocker_horizontal_bottom_001.png
- Assets/ExpandSprites/Misc/EXPortableElevator_Collection/portable_elevator_floor.png - Assets/ExpandSprites/Misc/EXPortableElevator_Collection/portable_elevator_floor.png
@ -388,6 +391,7 @@ Assets:
- Assets/ExpandSprites/AIActors/SonicCompanion_Collection/Sonic_Move_Back_Right_004.png - Assets/ExpandSprites/AIActors/SonicCompanion_Collection/Sonic_Move_Back_Right_004.png
- Assets/ExpandSprites/AIActors/BootlegBulletManBandana_Collection/bulletmanbandana_hit_left_001.png - Assets/ExpandSprites/AIActors/BootlegBulletManBandana_Collection/bulletmanbandana_hit_left_001.png
- Assets/ExpandSprites/GunsAndItems/EXItem_Collection/babygoodhammer_spawn_22.png - Assets/ExpandSprites/GunsAndItems/EXItem_Collection/babygoodhammer_spawn_22.png
- Assets/ExpandSprites/Misc/EXJungle_Collection/Jungle_Tree_Medium_Shadow.png
- Assets/ExpandSprites/AIActors/SonicCompanion_Collection/Sonic_Move_Back_Right_002.png - Assets/ExpandSprites/AIActors/SonicCompanion_Collection/Sonic_Move_Back_Right_002.png
- Assets/ExpandSprites/GunsAndItems/EXItem_Collection/junglecrest.png - Assets/ExpandSprites/GunsAndItems/EXItem_Collection/junglecrest.png
- Assets/ExpandSprites/AIActors/SonicCompanion_Collection/Sonic_Idle_Back_01.png - Assets/ExpandSprites/AIActors/SonicCompanion_Collection/Sonic_Idle_Back_01.png
@ -540,6 +544,7 @@ Assets:
- Assets/ExpandSprites/Misc/EXFoyer_Collection/gunball_use_002.png - Assets/ExpandSprites/Misc/EXFoyer_Collection/gunball_use_002.png
- Assets/ExpandSprites/Misc/EXMonster_Collection/Belly_PitVFX3_06.png - Assets/ExpandSprites/Misc/EXMonster_Collection/Belly_PitVFX3_06.png
- Assets/ExpandSprites/AIActors/Cronenberg_Tall_Collection/berg_tall_run_back_left_005.png - Assets/ExpandSprites/AIActors/Cronenberg_Tall_Collection/berg_tall_run_back_left_005.png
- Assets/ExpandSprites/Misc/EXJungle_Collection/Jungle_Tree_Debris_01.png
- Assets/ExpandSprites/Misc/EXOffice_Collection/office_one_way_blocker_vertical_bottom_001.png - Assets/ExpandSprites/Misc/EXOffice_Collection/office_one_way_blocker_vertical_bottom_001.png
- Assets/ExpandSprites/GunsAndItems/EXGun_Collection/bootleg_pistol_projectile_001.png - Assets/ExpandSprites/GunsAndItems/EXGun_Collection/bootleg_pistol_projectile_001.png
- Assets/ExpandSprites/AIActors/WestBrosCollection/gr_golden_revolver_reload_006.png - Assets/ExpandSprites/AIActors/WestBrosCollection/gr_golden_revolver_reload_006.png
@ -642,6 +647,7 @@ Assets:
- Assets/ExpandSprites/AIActors/SonicCompanion_Collection/Sonic_Move_Forward_Right_002.png - Assets/ExpandSprites/AIActors/SonicCompanion_Collection/Sonic_Move_Forward_Right_002.png
- Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_move_back_left_003.png - Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_move_back_left_003.png
- Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_dodge_front_left_007.png - Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_dodge_front_left_007.png
- Assets/ExpandSprites/Misc/EXJungle_Collection/Jungle_Tree_Debris_03.png
- Assets/ExpandSprites/GunsAndItems/EXItem_Collection/babygoodhammer_spawn_12.png - Assets/ExpandSprites/GunsAndItems/EXItem_Collection/babygoodhammer_spawn_12.png
- Assets/ExpandSprites/AIActors/Clownkin_Collection/clownkin_run_right_back_002.png - Assets/ExpandSprites/AIActors/Clownkin_Collection/clownkin_run_right_back_002.png
- Assets/ExpandSprites/Misc/EXFoyer_Collection/casino_hatrack_001.png - Assets/ExpandSprites/Misc/EXFoyer_Collection/casino_hatrack_001.png
@ -707,6 +713,7 @@ Assets:
- Assets/ExpandSprites/Misc/EXLargeMonster_Collection/Belly_Monster_Move_001.png - Assets/ExpandSprites/Misc/EXLargeMonster_Collection/Belly_Monster_Move_001.png
- Assets/ExpandSprites/Misc/EXPortableElevator_Collection/portable_elevator_interiorfloor.png - Assets/ExpandSprites/Misc/EXPortableElevator_Collection/portable_elevator_interiorfloor.png
- Assets/ExpandSprites/AIActors/Cronenberg_Tall_Collection/berg_tall_run_left_004.png - Assets/ExpandSprites/AIActors/Cronenberg_Tall_Collection/berg_tall_run_left_004.png
- Assets/ExpandSprites/Misc/EXJungle_Collection/Jungle_Tree_Medium_Stump_Shadow.png
- Assets/ExpandSprites/AIActors/SonicCompanion_Collection/Sonic_Move_Left_002.png - Assets/ExpandSprites/AIActors/SonicCompanion_Collection/Sonic_Move_Left_002.png
- Assets/ExpandSprites/AIActors/Clownkin_Collection/clownkin_death_right_front_005.png - Assets/ExpandSprites/AIActors/Clownkin_Collection/clownkin_death_right_front_005.png
- Assets/ExpandSprites/Misc/EXPortableElevator_Collection/portable_elevator_arrive_01.png - Assets/ExpandSprites/Misc/EXPortableElevator_Collection/portable_elevator_arrive_01.png
@ -900,6 +907,7 @@ Assets:
- Assets/ExpandSprites/Misc/EXParadrop_Collection/EX_Parachute.png - Assets/ExpandSprites/Misc/EXParadrop_Collection/EX_Parachute.png
- Assets/ExpandSprites/Misc/EXPortableElevator_Collection/portable_elevator_arrive_04.png - Assets/ExpandSprites/Misc/EXPortableElevator_Collection/portable_elevator_arrive_04.png
- Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_dodge_front_left_001.png - Assets/ExpandSprites/AIActors/CultistCompanion_Collection/cultist_dodge_front_left_001.png
- Assets/ExpandSprites/Misc/EXJungle_Collection/Jungle_Tree_Medium.png
- Assets/ExpandSprites/GunsAndItems/EXItem_Collection/corruptionbomb_spin_07.png - Assets/ExpandSprites/GunsAndItems/EXItem_Collection/corruptionbomb_spin_07.png
- Assets/ExpandSprites/AIActors/Clownkin_Collection/clownkin_spawn_002.png - Assets/ExpandSprites/AIActors/Clownkin_Collection/clownkin_spawn_002.png
- Assets/ExpandSprites/GunsAndItems/EXItem_Collection/babygoodhammer_spawn_05.png - Assets/ExpandSprites/GunsAndItems/EXItem_Collection/babygoodhammer_spawn_05.png
@ -1077,6 +1085,7 @@ Assets:
- Assets/ExpandSprites/Misc/EXFoyer_Collection/gunball_use_010.png - Assets/ExpandSprites/Misc/EXFoyer_Collection/gunball_use_010.png
- Assets/ExpandSprites/AIActors/Clownkin_Collection/clownkin_run_left_001.png - Assets/ExpandSprites/AIActors/Clownkin_Collection/clownkin_run_left_001.png
- Assets/ExpandSprites/Misc/EXTrap_Collection/music_switch_activate_002.png - Assets/ExpandSprites/Misc/EXTrap_Collection/music_switch_activate_002.png
- Assets/ExpandSprites/Misc/EXJungle_Collection/Jungle_Tree_Debris_02.png
- Assets/ExpandSprites/AIActors/Cronenberg_Tall_Collection/berg_tall_spawn_003.png - Assets/ExpandSprites/AIActors/Cronenberg_Tall_Collection/berg_tall_spawn_003.png
- Assets/ExpandSprites/AIActors/SonicCompanion_Collection/Sonic_SpindashCharge_Right_01.png - Assets/ExpandSprites/AIActors/SonicCompanion_Collection/Sonic_SpindashCharge_Right_01.png
- Assets/ExpandSprites/AIActors/SonicCompanion_Collection/Sonic_SpindashCharge_Forward_04.png - Assets/ExpandSprites/AIActors/SonicCompanion_Collection/Sonic_SpindashCharge_Forward_04.png

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 123 KiB

View File

@ -21,7 +21,7 @@ class ExpandBulletKingChallenge : ChallengeModifier {
"d4dd2b2bbda64cc9bcec534b4e920518", // bullet_kings_toadie_revenge "d4dd2b2bbda64cc9bcec534b4e920518", // bullet_kings_toadie_revenge
"02a14dec58ab45fb8aacde7aacd25b01", // old_kings_toadie "02a14dec58ab45fb8aacde7aacd25b01", // old_kings_toadie
"01972dee89fc4404a5c408d50007dad5", // bullet_kin "01972dee89fc4404a5c408d50007dad5", // bullet_kin
ExpandCustomEnemyDatabase.ClownkinAngryGUID ExpandEnemyDatabase.ClownkinAngryGUID
}; };
MinTimeBetweenSpawns = 10f; MinTimeBetweenSpawns = 10f;
@ -93,7 +93,7 @@ class ExpandBulletKingChallenge : ChallengeModifier {
IntVector2? DropLocation = ExpandUtility.GetRandomAvailableCellSmart(currentRoom, Clearence.Value, false); IntVector2? DropLocation = ExpandUtility.GetRandomAvailableCellSmart(currentRoom, Clearence.Value, false);
if (DropLocation.HasValue) { if (DropLocation.HasValue) {
bool isToadie = false; bool isToadie = false;
if (EnemyGUID.ToLower() != ExpandCustomEnemyDatabase.ClownkinAngryGUID && EnemyGUID.ToLower() != "01972dee89fc4404a5c408d50007dad5") { if (EnemyGUID.ToLower() != ExpandEnemyDatabase.ClownkinAngryGUID && EnemyGUID.ToLower() != "01972dee89fc4404a5c408d50007dad5") {
isToadie = true; isToadie = true;
} }
ExpandUtility.SpawnEnemyParaDrop(currentRoom, DropLocation.Value.ToVector3(), EnemyGUID, IsToadie: isToadie); ExpandUtility.SpawnEnemyParaDrop(currentRoom, DropLocation.Value.ToVector3(), EnemyGUID, IsToadie: isToadie);

View File

@ -74,7 +74,7 @@ public class ExpandCasinoRoomController : BraveBehaviour {
// Misc Props // Misc Props
Dungeon NakatomiPrefab = ExpandCustomDungeonPrefabs.LoadOfficialDungeonPrefab("Base_Nakatomi"); Dungeon NakatomiPrefab = ExpandDungeonPrefabs.LoadOfficialDungeonPrefab("Base_Nakatomi");
Vector3 WaterCoolerOffset1 = (RoomPosition + new Vector3(0.25f, 12)); Vector3 WaterCoolerOffset1 = (RoomPosition + new Vector3(0.25f, 12));
Vector3 WaterCoolerOffset2 = (RoomPosition + new Vector3(15.5f, 3)); Vector3 WaterCoolerOffset2 = (RoomPosition + new Vector3(15.5f, 3));

View File

@ -64,16 +64,16 @@ public class ExpandChaosChallengeComponent : ChallengeModifier {
}; };
RoomEnemyGUIDList = new List<string> { RoomEnemyGUIDList = new List<string> {
ExpandCustomEnemyDatabase.ClownkinAngryGUID, ExpandEnemyDatabase.ClownkinAngryGUID,
ExpandCustomEnemyDatabase.ClownkinNoFXGUID, ExpandEnemyDatabase.ClownkinNoFXGUID,
ExpandCustomEnemyDatabase.BootlegBulletManGUID, ExpandEnemyDatabase.BootlegBulletManGUID,
ExpandCustomEnemyDatabase.BootlegShotgunManBlueGUID, ExpandEnemyDatabase.BootlegShotgunManBlueGUID,
ExpandCustomEnemyDatabase.BootlegShotgunManRedGUID, ExpandEnemyDatabase.BootlegShotgunManRedGUID,
ExpandCustomEnemyDatabase.BootlegBulletManBandanaGUID, ExpandEnemyDatabase.BootlegBulletManBandanaGUID,
ExpandCustomEnemyDatabase.AggressiveCronenbergGUID, ExpandEnemyDatabase.AggressiveCronenbergGUID,
ExpandCustomEnemyDatabase.HotShotBulletKinGUID, ExpandEnemyDatabase.HotShotBulletKinGUID,
ExpandCustomEnemyDatabase.HotShotCultistGUID, ExpandEnemyDatabase.HotShotCultistGUID,
ExpandCustomEnemyDatabase.HotShotShotgunKinGUID, ExpandEnemyDatabase.HotShotShotgunKinGUID,
"01972dee89fc4404a5c408d50007dad5", // bullet_kin "01972dee89fc4404a5c408d50007dad5", // bullet_kin
"d4a9836f8ab14f3fadd0f597438b1f1f", // mutant_bullet_kin "d4a9836f8ab14f3fadd0f597438b1f1f", // mutant_bullet_kin
"05891b158cd542b1a5f3df30fb67a7ff", // arrow_head "05891b158cd542b1a5f3df30fb67a7ff", // arrow_head
@ -185,12 +185,12 @@ public class ExpandChaosChallengeComponent : ChallengeModifier {
BulletManMonochromeCollection = ExpandUtility.BuildSpriteCollection(EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5").sprite.Collection, ExpandPrefabs.BulletManMonochromeTexture, null, ShaderCache.Acquire("tk2d/BlendVertexColorUnlitTilted"), false); BulletManMonochromeCollection = ExpandUtility.BuildSpriteCollection(EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5").sprite.Collection, ExpandPrefabs.BulletManMonochromeTexture, null, ShaderCache.Acquire("tk2d/BlendVertexColorUnlitTilted"), false);
BulletManUpsideDownCollection = ExpandUtility.BuildSpriteCollection(EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5").sprite.Collection, ExpandPrefabs.BulletManUpsideDownTexture, null, null, false); BulletManUpsideDownCollection = ExpandUtility.BuildSpriteCollection(EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5").sprite.Collection, ExpandPrefabs.BulletManUpsideDownTexture, null, null, false);
AlreadyIgnoredForRoomClearList.Add(ExpandCustomEnemyDatabase.RatGrenadeGUID); // rat_granade AlreadyIgnoredForRoomClearList.Add(ExpandEnemyDatabase.RatGrenadeGUID); // rat_granade
PotPestGUIDList = new List<string>() { PotPestGUIDList = new List<string>() {
"6ad1cafc268f4214a101dca7af61bc91", // rat "6ad1cafc268f4214a101dca7af61bc91", // rat
"14ea47ff46b54bb4a98f91ffcffb656d", // rat_candle "14ea47ff46b54bb4a98f91ffcffb656d", // rat_candle
ExpandCustomEnemyDatabase.RatGrenadeGUID, ExpandEnemyDatabase.RatGrenadeGUID,
"1386da0f42fb4bcabc5be8feb16a7c38", // snake "1386da0f42fb4bcabc5be8feb16a7c38", // snake
"8b43a5c59b854eb780f9ab669ec26b7a", // dragun_egg_slimeguy "8b43a5c59b854eb780f9ab669ec26b7a", // dragun_egg_slimeguy
"d1c9781fdac54d9e8498ed89210a0238", // tiny_blobulord "d1c9781fdac54d9e8498ed89210a0238", // tiny_blobulord
@ -199,7 +199,7 @@ public class ExpandChaosChallengeComponent : ChallengeModifier {
PotEnemiesList = new List<string> { PotEnemiesList = new List<string> {
"6ad1cafc268f4214a101dca7af61bc91", // rat "6ad1cafc268f4214a101dca7af61bc91", // rat
"14ea47ff46b54bb4a98f91ffcffb656d", // rat_candle "14ea47ff46b54bb4a98f91ffcffb656d", // rat_candle
ExpandCustomEnemyDatabase.RatGrenadeGUID, ExpandEnemyDatabase.RatGrenadeGUID,
"76bc43539fc24648bff4568c75c686d1", // chicken "76bc43539fc24648bff4568c75c686d1", // chicken
"1386da0f42fb4bcabc5be8feb16a7c38", // snake "1386da0f42fb4bcabc5be8feb16a7c38", // snake
"2feb50a6a40f4f50982e89fd276f6f15", // bullat "2feb50a6a40f4f50982e89fd276f6f15", // bullat
@ -1024,11 +1024,11 @@ public class ExpandChaosChallengeComponent : ChallengeModifier {
IntVector2 targetSpawnPosition = (targetActor.gameObject.transform.PositionVector2().ToIntVector2()); IntVector2 targetSpawnPosition = (targetActor.gameObject.transform.PositionVector2().ToIntVector2());
if (targetActor.EnemyGuid == "128db2f0781141bcb505d8f00f9e4d47") { if (targetActor.EnemyGuid == "128db2f0781141bcb505d8f00f9e4d47") {
AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandCustomEnemyDatabase.BootlegShotgunManRedGUID), targetSpawnPosition, targetActor.GetAbsoluteParentRoom(), true, AIActor.AwakenAnimationType.Spawn, true); AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandEnemyDatabase.BootlegShotgunManRedGUID), targetSpawnPosition, targetActor.GetAbsoluteParentRoom(), true, AIActor.AwakenAnimationType.Spawn, true);
targetActor.GetAbsoluteParentRoom().DeregisterEnemy(targetActor); targetActor.GetAbsoluteParentRoom().DeregisterEnemy(targetActor);
Destroy(targetActor.gameObject); Destroy(targetActor.gameObject);
} else { } else {
AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandCustomEnemyDatabase.BootlegShotgunManBlueGUID), targetSpawnPosition, targetActor.GetAbsoluteParentRoom(), true, AIActor.AwakenAnimationType.Spawn, true); AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandEnemyDatabase.BootlegShotgunManBlueGUID), targetSpawnPosition, targetActor.GetAbsoluteParentRoom(), true, AIActor.AwakenAnimationType.Spawn, true);
targetActor.GetAbsoluteParentRoom().DeregisterEnemy(targetActor); targetActor.GetAbsoluteParentRoom().DeregisterEnemy(targetActor);
Destroy(targetActor.gameObject); Destroy(targetActor.gameObject);
} }
@ -1052,9 +1052,9 @@ public class ExpandChaosChallengeComponent : ChallengeModifier {
// IntVector2 targetSpawnPosition = (targetActor.gameObject.transform.PositionVector2().ToIntVector2() - targetActor.GetAbsoluteParentRoom().area.basePosition); // IntVector2 targetSpawnPosition = (targetActor.gameObject.transform.PositionVector2().ToIntVector2() - targetActor.GetAbsoluteParentRoom().area.basePosition);
IntVector2 targetSpawnPosition = (targetActor.gameObject.transform.PositionVector2().ToIntVector2()); IntVector2 targetSpawnPosition = (targetActor.gameObject.transform.PositionVector2().ToIntVector2());
if (targetActor.EnemyGuid == "db35531e66ce41cbb81d507a34366dfe") { if (targetActor.EnemyGuid == "db35531e66ce41cbb81d507a34366dfe") {
AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandCustomEnemyDatabase.BootlegBulletManBandanaGUID), targetSpawnPosition, targetActor.GetAbsoluteParentRoom(), true, AIActor.AwakenAnimationType.Spawn, true); AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandEnemyDatabase.BootlegBulletManBandanaGUID), targetSpawnPosition, targetActor.GetAbsoluteParentRoom(), true, AIActor.AwakenAnimationType.Spawn, true);
} else { } else {
AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandCustomEnemyDatabase.BootlegBulletManGUID), targetSpawnPosition, targetActor.GetAbsoluteParentRoom(), true, AIActor.AwakenAnimationType.Spawn, true); AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandEnemyDatabase.BootlegBulletManGUID), targetSpawnPosition, targetActor.GetAbsoluteParentRoom(), true, AIActor.AwakenAnimationType.Spawn, true);
} }
targetActor.GetAbsoluteParentRoom().DeregisterEnemy(targetActor); targetActor.GetAbsoluteParentRoom().DeregisterEnemy(targetActor);
Destroy(targetActor.gameObject); Destroy(targetActor.gameObject);
@ -1063,7 +1063,7 @@ public class ExpandChaosChallengeComponent : ChallengeModifier {
if (targetActor.EnemyGuid == "88b6b6a93d4b4234a67844ef4728382c") { if (targetActor.EnemyGuid == "88b6b6a93d4b4234a67844ef4728382c") {
IntVector2 targetSpawnPosition = (targetActor.gameObject.transform.PositionVector2().ToIntVector2() - targetActor.GetAbsoluteParentRoom().area.basePosition); IntVector2 targetSpawnPosition = (targetActor.gameObject.transform.PositionVector2().ToIntVector2() - targetActor.GetAbsoluteParentRoom().area.basePosition);
AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandCustomEnemyDatabase.BootlegBulletManBandanaGUID), targetSpawnPosition, targetActor.GetAbsoluteParentRoom(), true, AIActor.AwakenAnimationType.Spawn, true); AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(ExpandEnemyDatabase.BootlegBulletManBandanaGUID), targetSpawnPosition, targetActor.GetAbsoluteParentRoom(), true, AIActor.AwakenAnimationType.Spawn, true);
targetActor.GetAbsoluteParentRoom().DeregisterEnemy(targetActor); targetActor.GetAbsoluteParentRoom().DeregisterEnemy(targetActor);
Destroy(targetActor.gameObject); Destroy(targetActor.gameObject);
return; return;

View File

@ -22,8 +22,8 @@ public class ExpandFakeChest : DungeonPlaceableBehaviour, IPlaceConfigurable, IP
}; };
SurpriseChestEnemySpawnPool = new List<string>() { SurpriseChestEnemySpawnPool = new List<string>() {
ExpandCustomEnemyDatabase.ClownkinNoFXGUID, // Clown Kin (no FX/Balloon version) ExpandEnemyDatabase.ClownkinNoFXGUID, // Clown Kin (no FX/Balloon version)
ExpandCustomEnemyDatabase.ClownkinAngryGUID, // Angry Clownkin (no FX/Balloon and holds balloon gun) ExpandEnemyDatabase.ClownkinAngryGUID, // Angry Clownkin (no FX/Balloon and holds balloon gun)
"01972dee89fc4404a5c408d50007dad5", // bullet_kin "01972dee89fc4404a5c408d50007dad5", // bullet_kin
"05891b158cd542b1a5f3df30fb67a7ff", // arrow_head "05891b158cd542b1a5f3df30fb67a7ff", // arrow_head
"4d37ce3d666b4ddda8039929225b7ede", // grenade_kin "4d37ce3d666b4ddda8039929225b7ede", // grenade_kin
@ -163,11 +163,11 @@ public enum ChestType { MusicSwitch, RickRoll, SurpriseChest, WestChest};
"01972dee89fc4404a5c408d50007dad5" // red_shotgun_kin "01972dee89fc4404a5c408d50007dad5" // red_shotgun_kin
}; };
List<string> AltEnemyGUIDs = new List<string>() { List<string> AltEnemyGUIDs = new List<string>() {
ExpandCustomEnemyDatabase.ClownkinNoFXGUID, ExpandEnemyDatabase.ClownkinNoFXGUID,
ExpandCustomEnemyDatabase.BootlegBulletManGUID, ExpandEnemyDatabase.BootlegBulletManGUID,
ExpandCustomEnemyDatabase.BootlegBulletManBandanaGUID, ExpandEnemyDatabase.BootlegBulletManBandanaGUID,
ExpandCustomEnemyDatabase.BootlegShotgunManRedGUID, ExpandEnemyDatabase.BootlegShotgunManRedGUID,
ExpandCustomEnemyDatabase.BootlegShotgunManBlueGUID ExpandEnemyDatabase.BootlegShotgunManBlueGUID
}; };
EnemyGUIDs = EnemyGUIDs.Shuffle(); EnemyGUIDs = EnemyGUIDs.Shuffle();
for (int i = 0; i < EnemyGUIDs.Count; i++) { for (int i = 0; i < EnemyGUIDs.Count; i++) {

View File

@ -46,8 +46,8 @@ public class ExpandMaybeLoseAmmoOnDamage : MonoBehaviour, IGunInheritable {
if (TransfmorgifyTargetGUIDs != null && TransfmorgifyTargetGUIDs.Count <= 0 && IsBootlegShotgun) { if (TransfmorgifyTargetGUIDs != null && TransfmorgifyTargetGUIDs.Count <= 0 && IsBootlegShotgun) {
List<string> m_GUIDlist = new List<string>() { List<string> m_GUIDlist = new List<string>() {
ExpandCustomEnemyDatabase.BootlegShotgunManBlueGUID, ExpandEnemyDatabase.BootlegShotgunManBlueGUID,
ExpandCustomEnemyDatabase.BootlegShotgunManRedGUID ExpandEnemyDatabase.BootlegShotgunManRedGUID
}; };
m_GUIDlist = m_GUIDlist.Shuffle(); m_GUIDlist = m_GUIDlist.Shuffle();
TransfmorgifyTargetGUIDs.Add(BraveUtility.RandomElement(m_GUIDlist)); TransfmorgifyTargetGUIDs.Add(BraveUtility.RandomElement(m_GUIDlist));

View File

@ -27,9 +27,9 @@ public class ExpandEnemyReplacements {
} }
private static void InitHotShotReplacements(List<AGDEnemyReplacementTier> agdEnemyReplacementTiers) { private static void InitHotShotReplacements(List<AGDEnemyReplacementTier> agdEnemyReplacementTiers) {
List<string> hotShotShotGuns = new List<string>() { ExpandCustomEnemyDatabase.HotShotShotgunKinGUID }; List<string> hotShotShotGuns = new List<string>() { ExpandEnemyDatabase.HotShotShotgunKinGUID };
List<string> hotShotBulletKins = new List<string>() { ExpandCustomEnemyDatabase.HotShotBulletKinGUID }; List<string> hotShotBulletKins = new List<string>() { ExpandEnemyDatabase.HotShotBulletKinGUID };
List<string> hotShotCultist = new List<string>() { ExpandCustomEnemyDatabase.HotShotCultistGUID }; List<string> hotShotCultist = new List<string>() { ExpandEnemyDatabase.HotShotCultistGUID };
string nameAppend = "EXHotShot"; string nameAppend = "EXHotShot";
List<GlobalDungeonData.ValidTilesets> ValidTilesets = new List<GlobalDungeonData.ValidTilesets>() { List<GlobalDungeonData.ValidTilesets> ValidTilesets = new List<GlobalDungeonData.ValidTilesets>() {
@ -75,7 +75,7 @@ public class ExpandEnemyReplacements {
private static void InitReplacementEnemiesForBelly(List<AGDEnemyReplacementTier> agdEnemyReplacementTiers) { private static void InitReplacementEnemiesForBelly(List<AGDEnemyReplacementTier> agdEnemyReplacementTiers) {
GlobalDungeonData.ValidTilesets TargetTileset = GlobalDungeonData.ValidTilesets.BELLYGEON; GlobalDungeonData.ValidTilesets TargetTileset = GlobalDungeonData.ValidTilesets.BELLYGEON;
string nameAppend = "_EXBelly"; string nameAppend = "_EXBelly";
agdEnemyReplacementTiers.Add(GenerateEnemyReplacementTier("bulletKinReplacement" + nameAppend, new DungeonPrerequisite[0], TargetTileset, new List<string>() { "01972dee89fc4404a5c408d50007dad5" }, new List<string>() { ExpandCustomEnemyDatabase.AggressiveCronenbergGUID } )); agdEnemyReplacementTiers.Add(GenerateEnemyReplacementTier("bulletKinReplacement" + nameAppend, new DungeonPrerequisite[0], TargetTileset, new List<string>() { "01972dee89fc4404a5c408d50007dad5" }, new List<string>() { ExpandEnemyDatabase.AggressiveCronenbergGUID } ));
return; return;
} }

View File

@ -332,7 +332,7 @@ public class ExpandFloorDecorator {
private static void PlaceRandomOfficeSupplies(Dungeon dungeon, RoomHandler currentRoom) { private static void PlaceRandomOfficeSupplies(Dungeon dungeon, RoomHandler currentRoom) {
PrototypeDungeonRoom.RoomCategory roomCategory = currentRoom.area.PrototypeRoomCategory; PrototypeDungeonRoom.RoomCategory roomCategory = currentRoom.area.PrototypeRoomCategory;
Dungeon NakatomiPrefab = ExpandCustomDungeonPrefabs.LoadOfficialDungeonPrefab("Base_Nakatomi"); Dungeon NakatomiPrefab = ExpandDungeonPrefabs.LoadOfficialDungeonPrefab("Base_Nakatomi");
List<GameObject> m_ObjectList = new List<GameObject>(); List<GameObject> m_ObjectList = new List<GameObject>();

View File

@ -34,11 +34,11 @@ public class ExpandPaydayDrillItemFixes {
string EnemyGUID = d.GetWeightedProceduralEnemy().enemyGuid; string EnemyGUID = d.GetWeightedProceduralEnemy().enemyGuid;
if (string.IsNullOrEmpty(EnemyGUID)) { if (string.IsNullOrEmpty(EnemyGUID)) {
List<string> FallbackGUIDs = new List<string>() { List<string> FallbackGUIDs = new List<string>() {
ExpandCustomEnemyDatabase.BootlegBullatGUID, ExpandEnemyDatabase.BootlegBullatGUID,
ExpandCustomEnemyDatabase.BootlegBulletManGUID, ExpandEnemyDatabase.BootlegBulletManGUID,
ExpandCustomEnemyDatabase.BootlegBulletManBandanaGUID, ExpandEnemyDatabase.BootlegBulletManBandanaGUID,
ExpandCustomEnemyDatabase.BootlegShotgunManBlueGUID, ExpandEnemyDatabase.BootlegShotgunManBlueGUID,
ExpandCustomEnemyDatabase.BootlegShotgunManRedGUID ExpandEnemyDatabase.BootlegShotgunManRedGUID
}; };
FallbackGUIDs = FallbackGUIDs.Shuffle(); FallbackGUIDs = FallbackGUIDs.Shuffle();
EnemyGUID = BraveUtility.RandomElement(FallbackGUIDs); EnemyGUID = BraveUtility.RandomElement(FallbackGUIDs);
@ -241,11 +241,11 @@ public class ExpandPaydayDrillItemFixes {
string EnemyGUID = d.GetWeightedProceduralEnemy().enemyGuid; string EnemyGUID = d.GetWeightedProceduralEnemy().enemyGuid;
if (string.IsNullOrEmpty(EnemyGUID)) { if (string.IsNullOrEmpty(EnemyGUID)) {
List<string> FallbackGUIDs = new List<string>() { List<string> FallbackGUIDs = new List<string>() {
ExpandCustomEnemyDatabase.BootlegBullatGUID, ExpandEnemyDatabase.BootlegBullatGUID,
ExpandCustomEnemyDatabase.BootlegBulletManGUID, ExpandEnemyDatabase.BootlegBulletManGUID,
ExpandCustomEnemyDatabase.BootlegBulletManBandanaGUID, ExpandEnemyDatabase.BootlegBulletManBandanaGUID,
ExpandCustomEnemyDatabase.BootlegShotgunManBlueGUID, ExpandEnemyDatabase.BootlegShotgunManBlueGUID,
ExpandCustomEnemyDatabase.BootlegShotgunManRedGUID ExpandEnemyDatabase.BootlegShotgunManRedGUID
}; };
FallbackGUIDs = FallbackGUIDs.Shuffle(); FallbackGUIDs = FallbackGUIDs.Shuffle();
EnemyGUID = BraveUtility.RandomElement(FallbackGUIDs); EnemyGUID = BraveUtility.RandomElement(FallbackGUIDs);
@ -274,11 +274,11 @@ public class ExpandPaydayDrillItemFixes {
AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid(enemyGuid); AIActor orLoadByGuid = EnemyDatabase.GetOrLoadByGuid(enemyGuid);
if (!orLoadByGuid) { if (!orLoadByGuid) {
List<string> FallbackGUIDs = new List<string>() { List<string> FallbackGUIDs = new List<string>() {
ExpandCustomEnemyDatabase.BootlegBullatGUID, ExpandEnemyDatabase.BootlegBullatGUID,
ExpandCustomEnemyDatabase.BootlegBulletManGUID, ExpandEnemyDatabase.BootlegBulletManGUID,
ExpandCustomEnemyDatabase.BootlegBulletManBandanaGUID, ExpandEnemyDatabase.BootlegBulletManBandanaGUID,
ExpandCustomEnemyDatabase.BootlegShotgunManBlueGUID, ExpandEnemyDatabase.BootlegShotgunManBlueGUID,
ExpandCustomEnemyDatabase.BootlegShotgunManRedGUID ExpandEnemyDatabase.BootlegShotgunManRedGUID
}; };
FallbackGUIDs = FallbackGUIDs.Shuffle(); FallbackGUIDs = FallbackGUIDs.Shuffle();
orLoadByGuid = EnemyDatabase.GetOrLoadByGuid(BraveUtility.RandomElement(FallbackGUIDs)); orLoadByGuid = EnemyDatabase.GetOrLoadByGuid(BraveUtility.RandomElement(FallbackGUIDs));

View File

@ -63,6 +63,7 @@ public class ExpandSharedHooks {
public static Hook floorChestPlacerConfigureOnPlacementHook; public static Hook floorChestPlacerConfigureOnPlacementHook;
public static Hook applyBenefitHook; public static Hook applyBenefitHook;
public static Hook flameTrapHook; public static Hook flameTrapHook;
// public static Hook pixelatorStartHook;
public static bool IsHooksInstalled = false; public static bool IsHooksInstalled = false;
@ -383,6 +384,12 @@ public class ExpandSharedHooks {
typeof(FlameTrapChallengeModifier) typeof(FlameTrapChallengeModifier)
); );
/*if (ExpandSettings.debugMode) { Debug.Log("[ExpandTheGungeon] Installing Pixelator.Start Hook...."); }
pixelatorStartHook = new Hook(
typeof(Pixelator).GetMethod("Start", BindingFlags.NonPublic | BindingFlags.Instance),
typeof(ExpandSharedHooks).GetMethod(nameof(PixelatorStartHook), BindingFlags.NonPublic | BindingFlags.Instance),
typeof(Pixelator)
);*/
return; return;
} }
@ -870,7 +877,7 @@ public class ExpandSharedHooks {
// Make the HellDragZone thing actually take player to direct to bullet hell instead of using normal DelayedLoadNextLevel(). // Make the HellDragZone thing actually take player to direct to bullet hell instead of using normal DelayedLoadNextLevel().
// Since if the EndTimes room is loaded from a different level other then Forge, this could cause issues. :P // Since if the EndTimes room is loaded from a different level other then Forge, this could cause issues. :P
private IEnumerator HandleGrabbyGrabHook(Func<HellDragZoneController, PlayerController, IEnumerator>orig, HellDragZoneController self, PlayerController grabbedPlayer) { private IEnumerator HandleGrabbyGrabHook(Func<HellDragZoneController, PlayerController, IEnumerator>orig, HellDragZoneController self, PlayerController grabbedPlayer) {
FsmBool m_cryoBool = ReflectionHelpers.ReflectGetField<FsmBool>(typeof(HellDragZoneController), "m_cryoBool", self); FsmBool m_cryoBool = ReflectGetField<FsmBool>(typeof(HellDragZoneController), "m_cryoBool", self);
grabbedPlayer.specRigidbody.Velocity = Vector2.zero; grabbedPlayer.specRigidbody.Velocity = Vector2.zero;
grabbedPlayer.specRigidbody.CapVelocity = true; grabbedPlayer.specRigidbody.CapVelocity = true;
grabbedPlayer.specRigidbody.MaxVelocity = Vector2.zero; grabbedPlayer.specRigidbody.MaxVelocity = Vector2.zero;
@ -1073,7 +1080,6 @@ public class ExpandSharedHooks {
private void BuildOcclusionLayerCenterJungleHook(TK2DDungeonAssembler self, CellData current, Dungeon d, tk2dTileMap map, int ix, int iy) { private void BuildOcclusionLayerCenterJungleHook(TK2DDungeonAssembler self, CellData current, Dungeon d, tk2dTileMap map, int ix, int iy) {
if (current == null | !d | !map) { return; } if (current == null | !d | !map) { return; }
if (!IsValidJungleOcclusionCell(self, current, d, ix, iy)) { return; } if (!IsValidJungleOcclusionCell(self, current, d, ix, iy)) { return; }
bool flag = true; bool flag = true;
bool flag2 = true; bool flag2 = true;
@ -1123,7 +1129,6 @@ public class ExpandSharedHooks {
private void BuildBorderLayerCenterJungleHook(TK2DDungeonAssembler self, CellData current, Dungeon d, tk2dTileMap map, int ix, int iy) { private void BuildBorderLayerCenterJungleHook(TK2DDungeonAssembler self, CellData current, Dungeon d, tk2dTileMap map, int ix, int iy) {
if (current == null | !d | !map) { return; } if (current == null | !d | !map) { return; }
if (!IsValidJungleBorderCell(current, d, ix, iy)) { return; } if (!IsValidJungleBorderCell(current, d, ix, iy)) { return; }
bool flag = true; bool flag = true;
bool flag2 = true; bool flag2 = true;
@ -1214,6 +1219,7 @@ public class ExpandSharedHooks {
} }
private bool IsCardinalBorder(CellData current, Dungeon d, int ix, int iy) { private bool IsCardinalBorder(CellData current, Dungeon d, int ix, int iy) {
try {
bool flag = d.data.isTopWall(ix, iy); bool flag = d.data.isTopWall(ix, iy);
flag = (flag && !d.data[ix, iy + 1].cellVisualData.shouldIgnoreBorders); flag = (flag && !d.data[ix, iy + 1].cellVisualData.shouldIgnoreBorders);
bool flag2 = (!d.data.isWallRight(ix, iy) && !d.data.isRightTopWall(ix, iy)) || d.data.isFaceWallHigher(ix + 1, iy) || d.data.isFaceWallLower(ix + 1, iy); bool flag2 = (!d.data.isWallRight(ix, iy) && !d.data.isRightTopWall(ix, iy)) || d.data.isFaceWallHigher(ix + 1, iy) || d.data.isFaceWallLower(ix + 1, iy);
@ -1223,6 +1229,13 @@ public class ExpandSharedHooks {
bool flag4 = (!d.data.isWallLeft(ix, iy) && !d.data.isLeftTopWall(ix, iy)) || d.data.isFaceWallHigher(ix - 1, iy) || d.data.isFaceWallLower(ix - 1, iy); bool flag4 = (!d.data.isWallLeft(ix, iy) && !d.data.isLeftTopWall(ix, iy)) || d.data.isFaceWallHigher(ix - 1, iy) || d.data.isFaceWallLower(ix - 1, iy);
flag4 = (flag4 && !d.data[ix - 1, iy].cellVisualData.shouldIgnoreBorders); flag4 = (flag4 && !d.data[ix - 1, iy].cellVisualData.shouldIgnoreBorders);
return flag || flag2 || flag3 || flag4; return flag || flag2 || flag3 || flag4;
} catch (Exception ex) {
if (ExpandSettings.debugMode) {
Debug.Log("[ExpandTheGungeon] Excpetion caught in TK2DDungeonAssembler.IsCardinalBorder!");
Debug.LogException(ex);
}
return false;
}
} }
private TileIndexGrid GetTypeBorderGridForBorderIndexHook(TK2DDungeonAssembler self, CellData current, Dungeon d, out int usedVisualType) { private TileIndexGrid GetTypeBorderGridForBorderIndexHook(TK2DDungeonAssembler self, CellData current, Dungeon d, out int usedVisualType) {
@ -1540,10 +1553,10 @@ public class ExpandSharedHooks {
float elapsed = 0f; float elapsed = 0f;
float startValue = 0f; float startValue = 0f;
if (startAtCurrent) { startValue = self.FadeMaterial.GetColor("_Color").a; } if (startAtCurrent) { startValue = self.FadeMaterial.GetColor("_Color").a; }
bool m_skipCycle = ReflectionHelpers.ReflectGetField<bool>(typeof(FinalIntroSequenceManager), "m_skipCycle", self); bool m_skipCycle = ReflectGetField<bool>(typeof(FinalIntroSequenceManager), "m_skipCycle", self);
while (elapsed < duration) { while (elapsed < duration) {
if (!force && m_skipCycle) { yield break; } if (!force && m_skipCycle) { yield break; }
m_skipCycle = ReflectionHelpers.ReflectGetField<bool>(typeof(FinalIntroSequenceManager), "m_skipCycle", self); m_skipCycle = ReflectGetField<bool>(typeof(FinalIntroSequenceManager), "m_skipCycle", self);
elapsed += Time.deltaTime; elapsed += Time.deltaTime;
float t = elapsed / duration; float t = elapsed / duration;
self.FadeMaterial.SetColor("_Color", new Color(0f, 0f, 0f, Mathf.Lerp(startValue, 1f, t))); self.FadeMaterial.SetColor("_Color", new Color(0f, 0f, 0f, Mathf.Lerp(startValue, 1f, t)));
@ -1818,6 +1831,14 @@ public class ExpandSharedHooks {
m_activeTraps.Clear(); m_activeTraps.Clear();
} }
} }
/*private void PixelatorStartHook(Action<Pixelator>orig, Pixelator self) {
if (GameManager.Instance.Dungeon.tileIndices.tilesetId == GlobalDungeonData.ValidTilesets.JUNGLEGEON) {
// self.UseTexturedOcclusion = true;
self.localOcclusionTexture = ExpandAssets.LoadAsset<Texture2D>("JungleOcclusionTest");
}
orig(self);
}*/
} }
} }

View File

@ -10,7 +10,7 @@
namespace ExpandTheGungeon.ExpandPrefab { namespace ExpandTheGungeon.ExpandPrefab {
public class ExpandCustomDungeonPrefabs { public class ExpandDungeonPrefabs {
public static GameObject Base_Space; public static GameObject Base_Space;
public static GameObject Base_Jungle; public static GameObject Base_Jungle;
@ -82,7 +82,7 @@ public class ExpandCustomDungeonPrefabs {
if (ExpandSettings.debugMode) { Debug.Log("[ExpandTheGungeon] Installing DungeonDatabase.GetOrLoadByName Hook..."); } if (ExpandSettings.debugMode) { Debug.Log("[ExpandTheGungeon] Installing DungeonDatabase.GetOrLoadByName Hook..."); }
getOrLoadByName_Hook = new Hook( getOrLoadByName_Hook = new Hook(
typeof(DungeonDatabase).GetMethod("GetOrLoadByName", BindingFlags.Static | BindingFlags.Public), typeof(DungeonDatabase).GetMethod("GetOrLoadByName", BindingFlags.Static | BindingFlags.Public),
typeof(ExpandCustomDungeonPrefabs).GetMethod("GetOrLoadByNameHook", BindingFlags.Static | BindingFlags.Public) typeof(ExpandDungeonPrefabs).GetMethod("GetOrLoadByNameHook", BindingFlags.Static | BindingFlags.Public)
); );
ReInitFloorDefinitions(gameManager); ReInitFloorDefinitions(gameManager);
} }
@ -821,6 +821,7 @@ public class ExpandCustomDungeonPrefabs {
decalIndexGrid = null, decalIndexGrid = null,
patternIndexGrid = null, patternIndexGrid = null,
globalSecondBorderTiles = new List<int>(0), globalSecondBorderTiles = new List<int>(0),
// globalSecondBorderTiles = new List<int>() { 308, 309, 310, 330, 331, 332, 352, 353, 354, 374, 396, 397, 418, 419 },
edgeDecorationTiles = null edgeDecorationTiles = null
}; };

View File

@ -14,9 +14,9 @@
namespace ExpandTheGungeon.ExpandPrefab { namespace ExpandTheGungeon.ExpandPrefab {
public static class ExpandCustomEnemyDatabase { public static class ExpandEnemyDatabase {
static ExpandCustomEnemyDatabase() { static ExpandEnemyDatabase() {
HotShotCultistGUID = "61a8112544ce4389ab14f2287616a71b"; HotShotCultistGUID = "61a8112544ce4389ab14f2287616a71b";
HotShotShotgunKinGUID = "758a0a0215e6448ab52adf73bc44ae5e"; HotShotShotgunKinGUID = "758a0a0215e6448ab52adf73bc44ae5e";
HotShotBulletKinGUID = "8a0b7a287410464bb17b9e656958bd19"; HotShotBulletKinGUID = "8a0b7a287410464bb17b9e656958bd19";
@ -172,7 +172,7 @@ public static class ExpandCustomEnemyDatabase {
if (ExpandSettings.debugMode) { Debug.Log("[ExpandTheGungeon] Installing EnemyDatabase.GetOrLoadByGuid Hook...."); } if (ExpandSettings.debugMode) { Debug.Log("[ExpandTheGungeon] Installing EnemyDatabase.GetOrLoadByGuid Hook...."); }
loadEnemyGUIDHook = new Hook( loadEnemyGUIDHook = new Hook(
typeof(EnemyDatabase).GetMethod("GetOrLoadByGuid", BindingFlags.Static | BindingFlags.Public), typeof(EnemyDatabase).GetMethod("GetOrLoadByGuid", BindingFlags.Static | BindingFlags.Public),
typeof(ExpandCustomEnemyDatabase).GetMethod("GetOrLoadByGuidHook", BindingFlags.Static | BindingFlags.Public) typeof(ExpandEnemyDatabase).GetMethod("GetOrLoadByGuidHook", BindingFlags.Static | BindingFlags.Public)
); );
// Palette Fix to Red/Blue Shotgun Kin and Veteran Bullet Kin (so they work correctly with glitch shader) // Palette Fix to Red/Blue Shotgun Kin and Veteran Bullet Kin (so they work correctly with glitch shader)

View File

@ -405,8 +405,18 @@ public static class ExpandLists {
"Jungle_TreeStump", "Jungle_TreeStump",
"Jungle_ExitLadder", "Jungle_ExitLadder",
"Jungle_ExitLadder_Destination", "Jungle_ExitLadder_Destination",
"Jungle_ExitLadder_Destination_Hole" "Jungle_ExitLadder_Destination_Hole",
"Jungle_Tree_Medium",
"Jungle_Tree_Medium_Stump",
"Jungle_Tree_Medium_Stump_Shadow",
"Jungle_Tree_Small",
"Jungle_Tree_Small_Shadow",
"Jungle_Tree_Medium_Shadow",
"Jungle_Tree_Debris_03",
"Jungle_Tree_Debris_02",
"Jungle_Tree_Debris_01",
}; };
public static readonly List<string> EXOfficeCollection = new List<string>() { public static readonly List<string> EXOfficeCollection = new List<string>() {
"office_one_way_blocker_vertical_top_001", "office_one_way_blocker_vertical_top_001",
"office_one_way_blocker_vertical_bottom_001", "office_one_way_blocker_vertical_bottom_001",

View File

@ -2413,7 +2413,7 @@ public class ExpandPrefabs {
DoppelgunnerMirror = expandSharedAssets1.LoadAsset<GameObject>("DoppelgunnerMirror"); DoppelgunnerMirror = expandSharedAssets1.LoadAsset<GameObject>("DoppelgunnerMirror");
tk2dSprite MirrorBaseSprite = SpriteSerializer.AddSpriteToObject(DoppelgunnerMirror, ExpandCustomEnemyDatabase.GungeoneerMimicCollection, "PlayerMimicMirror_Base"); tk2dSprite MirrorBaseSprite = SpriteSerializer.AddSpriteToObject(DoppelgunnerMirror, ExpandEnemyDatabase.GungeoneerMimicCollection, "PlayerMimicMirror_Base");
List<string> m_MirrorMimicFadeInSprites = new List<string>() { List<string> m_MirrorMimicFadeInSprites = new List<string>() {
"PlayerMimicMirror_MimicFadeIn_01", "PlayerMimicMirror_MimicFadeIn_01",
@ -2450,17 +2450,17 @@ public class ExpandPrefabs {
}; };
ExpandUtility.GenerateSpriteAnimator(DoppelgunnerMirror, AnimateDuringBossIntros: true, AlwaysIgnoreTimeScale: true, ignoreTimeScale: true); ExpandUtility.GenerateSpriteAnimator(DoppelgunnerMirror, AnimateDuringBossIntros: true, AlwaysIgnoreTimeScale: true, ignoreTimeScale: true);
ExpandUtility.AddAnimation(DoppelgunnerMirror.GetComponent<tk2dSpriteAnimator>(), ExpandCustomEnemyDatabase.GungeoneerMimicCollection.GetComponent<tk2dSpriteCollectionData>(), m_MirrorMimicFadeInSprites, "PlayerMimicFadeIn", tk2dSpriteAnimationClip.WrapMode.Once, 8); ExpandUtility.AddAnimation(DoppelgunnerMirror.GetComponent<tk2dSpriteAnimator>(), ExpandEnemyDatabase.GungeoneerMimicCollection.GetComponent<tk2dSpriteCollectionData>(), m_MirrorMimicFadeInSprites, "PlayerMimicFadeIn", tk2dSpriteAnimationClip.WrapMode.Once, 8);
ExpandUtility.AddAnimation(DoppelgunnerMirror.GetComponent<tk2dSpriteAnimator>(), ExpandCustomEnemyDatabase.GungeoneerMimicCollection.GetComponent<tk2dSpriteCollectionData>(), m_MirrorCrackSprites, "MirrorGlassCrack", tk2dSpriteAnimationClip.WrapMode.Once, 6); ExpandUtility.AddAnimation(DoppelgunnerMirror.GetComponent<tk2dSpriteAnimator>(), ExpandEnemyDatabase.GungeoneerMimicCollection.GetComponent<tk2dSpriteCollectionData>(), m_MirrorCrackSprites, "MirrorGlassCrack", tk2dSpriteAnimationClip.WrapMode.Once, 6);
DoppelgunnerMirrorFX = expandSharedAssets1.LoadAsset<GameObject>("DoppelgunnerMirrorFX"); DoppelgunnerMirrorFX = expandSharedAssets1.LoadAsset<GameObject>("DoppelgunnerMirrorFX");
tk2dSprite MimicMirrorFXSprite = SpriteSerializer.AddSpriteToObject(DoppelgunnerMirrorFX, ExpandCustomEnemyDatabase.GungeoneerMimicCollection, "PlayerMimicMirror_ShatterDebris_01"); tk2dSprite MimicMirrorFXSprite = SpriteSerializer.AddSpriteToObject(DoppelgunnerMirrorFX, ExpandEnemyDatabase.GungeoneerMimicCollection, "PlayerMimicMirror_ShatterDebris_01");
MimicMirrorFXSprite.HeightOffGround = 3.5f; MimicMirrorFXSprite.HeightOffGround = 3.5f;
ExpandUtility.GenerateSpriteAnimator(DoppelgunnerMirrorFX, AnimateDuringBossIntros: true, AlwaysIgnoreTimeScale: true, ignoreTimeScale: true); ExpandUtility.GenerateSpriteAnimator(DoppelgunnerMirrorFX, AnimateDuringBossIntros: true, AlwaysIgnoreTimeScale: true, ignoreTimeScale: true);
ExpandUtility.AddAnimation(DoppelgunnerMirrorFX.GetComponent<tk2dSpriteAnimator>(), ExpandCustomEnemyDatabase.GungeoneerMimicCollection.GetComponent<tk2dSpriteCollectionData>(), m_MirrorShatterFXSprites, "PlayerMimicShatter", tk2dSpriteAnimationClip.WrapMode.Once, 12); ExpandUtility.AddAnimation(DoppelgunnerMirrorFX.GetComponent<tk2dSpriteAnimator>(), ExpandEnemyDatabase.GungeoneerMimicCollection.GetComponent<tk2dSpriteCollectionData>(), m_MirrorShatterFXSprites, "PlayerMimicShatter", tk2dSpriteAnimationClip.WrapMode.Once, 12);
RoomCorruptionAmbience = expandSharedAssets1.LoadAsset<GameObject>("RoomCorruptionAmbience_Placable"); RoomCorruptionAmbience = expandSharedAssets1.LoadAsset<GameObject>("RoomCorruptionAmbience_Placable");

View File

@ -962,7 +962,7 @@ public class ExpandRoomPrefabs {
RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(30, 30), ExpandObjectDatabase.DefaultTorch, xOffset: 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(30, 30), ExpandObjectDatabase.DefaultTorch, xOffset: 8);
RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(42, 25), ExpandObjectDatabase.DefaultTorch, xOffset: 8); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(42, 25), ExpandObjectDatabase.DefaultTorch, xOffset: 8);
RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(22, 14), ExpandObjectDatabase.GodRays); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(22, 14), ExpandObjectDatabase.GodRays);
RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(24, 16), EnemyBehaviourGuid: ExpandCustomEnemyDatabase.com4nd0GUID); RoomBuilder.AddObjectToRoom(Expand_Jungle_Boss, new Vector2(24, 16), EnemyBehaviourGuid: ExpandEnemyDatabase.com4nd0GUID);
Expand_Belly_Entrance = RoomFactory.BuildFromAssetBundle(AssetBundles, "Expand_Belly_Entrance", true); Expand_Belly_Entrance = RoomFactory.BuildFromAssetBundle(AssetBundles, "Expand_Belly_Entrance", true);
@ -1002,7 +1002,7 @@ public class ExpandRoomPrefabs {
new PrototypeRoomObjectLayer() { new PrototypeRoomObjectLayer() {
placedObjects = new List<PrototypePlacedObjectData>() { placedObjects = new List<PrototypePlacedObjectData>() {
new PrototypePlacedObjectData() { new PrototypePlacedObjectData() {
enemyBehaviourGuid = ExpandCustomEnemyDatabase.AggressiveCronenbergGUID, // enemyBehaviourGuid = ExpandEnemyDatabase.AggressiveCronenbergGUID, //
contentsBasePosition = new Vector2(17, 12), contentsBasePosition = new Vector2(17, 12),
layer = 0, layer = 0,
xMPxOffset = 0, xMPxOffset = 0,
@ -1013,7 +1013,7 @@ public class ExpandRoomPrefabs {
assignedPathStartNode = 0 assignedPathStartNode = 0
}, },
new PrototypePlacedObjectData() { new PrototypePlacedObjectData() {
enemyBehaviourGuid = ExpandCustomEnemyDatabase.AggressiveCronenbergGUID, // enemyBehaviourGuid = ExpandEnemyDatabase.AggressiveCronenbergGUID, //
contentsBasePosition = new Vector2(15, 18), contentsBasePosition = new Vector2(15, 18),
layer = 0, layer = 0,
xMPxOffset = 0, xMPxOffset = 0,
@ -1024,7 +1024,7 @@ public class ExpandRoomPrefabs {
assignedPathStartNode = 0 assignedPathStartNode = 0
}, },
new PrototypePlacedObjectData() { new PrototypePlacedObjectData() {
enemyBehaviourGuid = ExpandCustomEnemyDatabase.AggressiveCronenbergGUID, // enemyBehaviourGuid = ExpandEnemyDatabase.AggressiveCronenbergGUID, //
contentsBasePosition = new Vector2(11, 12), contentsBasePosition = new Vector2(11, 12),
layer = 0, layer = 0,
xMPxOffset = 0, xMPxOffset = 0,
@ -1035,7 +1035,7 @@ public class ExpandRoomPrefabs {
assignedPathStartNode = 0 assignedPathStartNode = 0
}, },
new PrototypePlacedObjectData() { new PrototypePlacedObjectData() {
enemyBehaviourGuid = ExpandCustomEnemyDatabase.AggressiveCronenbergGUID, // enemyBehaviourGuid = ExpandEnemyDatabase.AggressiveCronenbergGUID, //
contentsBasePosition = new Vector2(19, 27), contentsBasePosition = new Vector2(19, 27),
layer = 0, layer = 0,
xMPxOffset = 0, xMPxOffset = 0,
@ -1046,7 +1046,7 @@ public class ExpandRoomPrefabs {
assignedPathStartNode = 0 assignedPathStartNode = 0
}, },
new PrototypePlacedObjectData() { new PrototypePlacedObjectData() {
enemyBehaviourGuid = ExpandCustomEnemyDatabase.AggressiveCronenbergGUID, // enemyBehaviourGuid = ExpandEnemyDatabase.AggressiveCronenbergGUID, //
contentsBasePosition = new Vector2(27, 15), contentsBasePosition = new Vector2(27, 15),
layer = 0, layer = 0,
xMPxOffset = 0, xMPxOffset = 0,
@ -1057,7 +1057,7 @@ public class ExpandRoomPrefabs {
assignedPathStartNode = 0 assignedPathStartNode = 0
}, },
new PrototypePlacedObjectData() { new PrototypePlacedObjectData() {
enemyBehaviourGuid = ExpandCustomEnemyDatabase.AggressiveCronenbergGUID, // enemyBehaviourGuid = ExpandEnemyDatabase.AggressiveCronenbergGUID, //
contentsBasePosition = new Vector2(29, 19), contentsBasePosition = new Vector2(29, 19),
layer = 0, layer = 0,
xMPxOffset = 0, xMPxOffset = 0,
@ -1086,7 +1086,7 @@ public class ExpandRoomPrefabs {
numberTimesEncounteredRequired = 0 numberTimesEncounteredRequired = 0
} }
}; };
RoomBuilder.AddObjectToRoom(Expand_Belly_BossRoom, new Vector2(20, 19), EnemyBehaviourGuid: ExpandCustomEnemyDatabase.ParasiteBossGUID); RoomBuilder.AddObjectToRoom(Expand_Belly_BossRoom, new Vector2(20, 19), EnemyBehaviourGuid: ExpandEnemyDatabase.ParasiteBossGUID);
// RoomBuilder.AddObjectToRoom(Expand_Belly_BossRoom, new Vector2(1, 30), ExpandPrefab.Belly_Shipwreck_Left); // RoomBuilder.AddObjectToRoom(Expand_Belly_BossRoom, new Vector2(1, 30), ExpandPrefab.Belly_Shipwreck_Left);
// RoomBuilder.AddObjectToRoom(Expand_Belly_BossRoom, new Vector2(26, 31), ExpandPrefab.Belly_Shipwreck_Right); // RoomBuilder.AddObjectToRoom(Expand_Belly_BossRoom, new Vector2(26, 31), ExpandPrefab.Belly_Shipwreck_Right);
@ -1152,8 +1152,8 @@ public class ExpandRoomPrefabs {
RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(34, 25), ExpandPrefabs.Door_Horizontal_West); RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(34, 25), ExpandPrefabs.Door_Horizontal_West);
RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(25, 17), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(25, 17), ExpandPrefabs.Door_Vertical_West);
RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(25, 35), ExpandPrefabs.Door_Vertical_West); RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(25, 35), ExpandPrefabs.Door_Vertical_West);
RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(9, 42), EnemyBehaviourGuid: ExpandCustomEnemyDatabase.MetalCubeGuyWestGUID); RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(9, 42), EnemyBehaviourGuid: ExpandEnemyDatabase.MetalCubeGuyWestGUID);
RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(41, 10), EnemyBehaviourGuid: ExpandCustomEnemyDatabase.MetalCubeGuyWestGUID); RoomBuilder.AddObjectToRoom(Expand_West_Entrance, new Vector2(41, 10), EnemyBehaviourGuid: ExpandEnemyDatabase.MetalCubeGuyWestGUID);
RoomBuilder.AddObjectToRoom(Expand_West_Entrance, Vector2.one, ExpandPrefabs.West_PuzzleSetupPlacable); RoomBuilder.AddObjectToRoom(Expand_West_Entrance, Vector2.one, ExpandPrefabs.West_PuzzleSetupPlacable);
@ -9751,7 +9751,7 @@ public class ExpandRoomPrefabs {
new PrototypeRoomObjectLayer() { new PrototypeRoomObjectLayer() {
placedObjects = new List<PrototypePlacedObjectData>() { placedObjects = new List<PrototypePlacedObjectData>() {
new PrototypePlacedObjectData() { new PrototypePlacedObjectData() {
enemyBehaviourGuid = ExpandCustomEnemyDatabase.BootlegShotgunManRedGUID, // bootleg_shotgunmanred enemyBehaviourGuid = ExpandEnemyDatabase.BootlegShotgunManRedGUID, // bootleg_shotgunmanred
contentsBasePosition = new Vector2(12, 11), contentsBasePosition = new Vector2(12, 11),
layer = 0, layer = 0,
xMPxOffset = 0, xMPxOffset = 0,
@ -9762,7 +9762,7 @@ public class ExpandRoomPrefabs {
assignedPathStartNode = 0 assignedPathStartNode = 0
}, },
new PrototypePlacedObjectData() { new PrototypePlacedObjectData() {
enemyBehaviourGuid = ExpandCustomEnemyDatabase.BootlegBullatGUID, // bootleg_bullat enemyBehaviourGuid = ExpandEnemyDatabase.BootlegBullatGUID, // bootleg_bullat
contentsBasePosition = new Vector2(4, 6), contentsBasePosition = new Vector2(4, 6),
layer = 0, layer = 0,
xMPxOffset = 0, xMPxOffset = 0,
@ -9773,7 +9773,7 @@ public class ExpandRoomPrefabs {
assignedPathStartNode = 0 assignedPathStartNode = 0
}, },
new PrototypePlacedObjectData() { new PrototypePlacedObjectData() {
enemyBehaviourGuid = ExpandCustomEnemyDatabase.BootlegShotgunManBlueGUID, // bootleg_shotgunmanblue enemyBehaviourGuid = ExpandEnemyDatabase.BootlegShotgunManBlueGUID, // bootleg_shotgunmanblue
contentsBasePosition = new Vector2(10, 6), contentsBasePosition = new Vector2(10, 6),
layer = 0, layer = 0,
xMPxOffset = 0, xMPxOffset = 0,
@ -9811,10 +9811,10 @@ public class ExpandRoomPrefabs {
RoomBuilder.AddExitToRoom(Expand_BootlegRoom, new Vector2(10, 14), DungeonData.Direction.NORTH, ContainsDoor: false); RoomBuilder.AddExitToRoom(Expand_BootlegRoom, new Vector2(10, 14), DungeonData.Direction.NORTH, ContainsDoor: false);
RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(0, 0), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXBootlegRoomObject, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(0, 0), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXBootlegRoomObject, useExternalPrefab: true));
RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(0, 0), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXBootlegRoomDoorTriggers, useExternalPrefab: true)); RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(0, 0), ExpandUtility.GenerateDungeonPlacable(ExpandPrefabs.EXBootlegRoomDoorTriggers, useExternalPrefab: true));
RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(8, 8), EnemyBehaviourGuid: ExpandCustomEnemyDatabase.BootlegBulletManGUID); // Bootleg BulletMan RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(8, 8), EnemyBehaviourGuid: ExpandEnemyDatabase.BootlegBulletManGUID); // Bootleg BulletMan
RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(7, 11), EnemyBehaviourGuid: ExpandCustomEnemyDatabase.BootlegBulletManGUID); // Bootleg BulletMan RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(7, 11), EnemyBehaviourGuid: ExpandEnemyDatabase.BootlegBulletManGUID); // Bootleg BulletMan
RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(5, 5), EnemyBehaviourGuid: ExpandCustomEnemyDatabase.BootlegBulletManBandanaGUID); // Bootleg BulletManBandana RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(5, 5), EnemyBehaviourGuid: ExpandEnemyDatabase.BootlegBulletManBandanaGUID); // Bootleg BulletManBandana
RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(5, 8), EnemyBehaviourGuid: ExpandCustomEnemyDatabase.BootlegBullatGUID); // Bootleg Bullat RoomBuilder.AddObjectToRoom(Expand_BootlegRoom, new Vector2(5, 8), EnemyBehaviourGuid: ExpandEnemyDatabase.BootlegBullatGUID); // Bootleg Bullat
List<PrototypeDungeonRoom> m_JungleRooms = new List<PrototypeDungeonRoom>(); List<PrototypeDungeonRoom> m_JungleRooms = new List<PrototypeDungeonRoom>();

View File

@ -52,10 +52,10 @@ public static void BuildWestBrosBossPrefabs(AssetBundle assetBundle)
Collection = WestBrosGun.gameObject.GetComponent<tk2dSprite>().Collection; Collection = WestBrosGun.gameObject.GetComponent<tk2dSprite>().Collection;
Animation = WestBrosGun.gameObject.GetComponent<tk2dSpriteAnimator>().Library; Animation = WestBrosGun.gameObject.GetComponent<tk2dSpriteAnimator>().Library;
Shades = ExpandCustomEnemyDatabase.GetOfficialEnemyByGuid("c00390483f394a849c36143eb878998f"); Shades = ExpandEnemyDatabase.GetOfficialEnemyByGuid("c00390483f394a849c36143eb878998f");
ShadesDebris = Shades.GetComponentInChildren<ExplosionDebrisLauncher>().debrisSources[0]; ShadesDebris = Shades.GetComponentInChildren<ExplosionDebrisLauncher>().debrisSources[0];
SetupHand(assetBundle, out WestBrosHandPrefab, ExpandCustomEnemyDatabase.WestBrosCollection.GetComponent<tk2dSpriteCollectionData>()); SetupHand(assetBundle, out WestBrosHandPrefab, ExpandEnemyDatabase.WestBrosCollection.GetComponent<tk2dSpriteCollectionData>());
BuildWestBrosHatPrefab(assetBundle, out WestBrosAngelHatPrefab, WestBros.Angel, Collection, ShadesDebris); BuildWestBrosHatPrefab(assetBundle, out WestBrosAngelHatPrefab, WestBros.Angel, Collection, ShadesDebris);
BuildWestBrosHatPrefab(assetBundle, out WestBrosNomeHatPrefab, WestBros.Nome, Collection, ShadesDebris); BuildWestBrosHatPrefab(assetBundle, out WestBrosNomeHatPrefab, WestBros.Nome, Collection, ShadesDebris);
@ -86,7 +86,7 @@ private static void SetupHand(AssetBundle assetBundle, out GameObject handPrefab
handPrefab = assetBundle.LoadAsset<GameObject>("WestBroHandObject"); handPrefab = assetBundle.LoadAsset<GameObject>("WestBroHandObject");
var sprite = SpriteSerializer.AddSpriteToObject(handPrefab, ExpandCustomEnemyDatabase.WestBrosCollection, spriteDefinition.name); var sprite = SpriteSerializer.AddSpriteToObject(handPrefab, ExpandEnemyDatabase.WestBrosCollection, spriteDefinition.name);
handPrefab.AddComponent<PlayerHandController>(); handPrefab.AddComponent<PlayerHandController>();
} }
@ -142,7 +142,7 @@ public static void Log(object o, bool debug = false)
private static void BuildWestBrosBossPrefab(AssetBundle assetBundle, out GameObject outObject, WestBros whichBro, bool isSmiley, tk2dSpriteCollectionData sourceSpriteCollection, tk2dSpriteAnimation sourceAnimations, bool keepIntroDoer = false) private static void BuildWestBrosBossPrefab(AssetBundle assetBundle, out GameObject outObject, WestBros whichBro, bool isSmiley, tk2dSpriteCollectionData sourceSpriteCollection, tk2dSpriteAnimation sourceAnimations, bool keepIntroDoer = false)
{ {
GameObject prefab = ExpandCustomEnemyDatabase.GetOfficialEnemyByGuid(isSmiley GameObject prefab = ExpandEnemyDatabase.GetOfficialEnemyByGuid(isSmiley
? "ea40fcc863d34b0088f490f4e57f8913" // Smiley ? "ea40fcc863d34b0088f490f4e57f8913" // Smiley
: "c00390483f394a849c36143eb878998f").gameObject; // Shades : "c00390483f394a849c36143eb878998f").gameObject; // Shades
@ -482,7 +482,7 @@ private static void BuildWestBrosBossPrefab(AssetBundle assetBundle, out GameObj
actor.RegenerateCache(); actor.RegenerateCache();
ExpandCustomEnemyDatabase.AddEnemyToDatabase(outObject, actor.EnemyGuid, true); ExpandEnemyDatabase.AddEnemyToDatabase(outObject, actor.EnemyGuid, true);
FakePrefab.MarkAsFakePrefab(outObject); FakePrefab.MarkAsFakePrefab(outObject);
UnityEngine.Object.DontDestroyOnLoad(outObject); UnityEngine.Object.DontDestroyOnLoad(outObject);
} }

View File

@ -24,7 +24,7 @@ public class ExpandTheGungeon : BaseUnityPlugin {
public const string GUID = "ApacheThunder.etg.ExpandTheGungeon"; public const string GUID = "ApacheThunder.etg.ExpandTheGungeon";
public const string ModName = "ExpandTheGungeon"; public const string ModName = "ExpandTheGungeon";
public const string VERSION = "2.9.6"; public const string VERSION = "2.9.7";
public static string ZipFilePath; public static string ZipFilePath;
public static string FilePath; public static string FilePath;
public static string ResourcesPath; public static string ResourcesPath;
@ -156,10 +156,10 @@ private enum WaitType { ShotgunSecret, LanguageFix, DebugFlow };
ExpandAssets.InitAudio(expandSharedAssets1, ModSoundBankName); ExpandAssets.InitAudio(expandSharedAssets1, ModSoundBankName);
// Init Custom GameLevelDefinitions // Init Custom GameLevelDefinitions
ExpandCustomDungeonPrefabs.InitCustomGameLevelDefinitions(braveResources, gameManager); ExpandDungeonPrefabs.InitCustomGameLevelDefinitions(braveResources, gameManager);
// Init Custom Sprite Collections // Init Custom Sprite Collections
ExpandPrefabs.InitSpriteCollections(expandSharedAssets1, sharedAssets); ExpandPrefabs.InitSpriteCollections(expandSharedAssets1, sharedAssets);
ExpandCustomEnemyDatabase.InitSpriteCollections(expandSharedAssets1); ExpandEnemyDatabase.InitSpriteCollections(expandSharedAssets1);
// Init ItemAPI // Init ItemAPI
SetupItemAPI(expandSharedAssets1); SetupItemAPI(expandSharedAssets1);
@ -168,7 +168,7 @@ private enum WaitType { ShotgunSecret, LanguageFix, DebugFlow };
// Init Prefab Databases // Init Prefab Databases
ExpandPrefabs.InitCustomPrefabs(expandSharedAssets1, sharedAssets, sharedAssets2, braveResources, enemiesBase); ExpandPrefabs.InitCustomPrefabs(expandSharedAssets1, sharedAssets, sharedAssets2, braveResources, enemiesBase);
// Init Custom Enemy Prefabs // Init Custom Enemy Prefabs
ExpandCustomEnemyDatabase.InitPrefabs(expandSharedAssets1); ExpandEnemyDatabase.InitPrefabs(expandSharedAssets1);
// Init Custom Room Prefabs // Init Custom Room Prefabs
ExpandRoomPrefabs.InitCustomRooms(expandSharedAssets1, sharedAssets, sharedAssets2, braveResources, enemiesBase); ExpandRoomPrefabs.InitCustomRooms(expandSharedAssets1, sharedAssets, sharedAssets2, braveResources, enemiesBase);
// Init Custom DungeonFlow(s) // Init Custom DungeonFlow(s)
@ -178,7 +178,7 @@ private enum WaitType { ShotgunSecret, LanguageFix, DebugFlow };
BootlegGuns.PostInit(); BootlegGuns.PostInit();
ClownFriend.PostInit(); ClownFriend.PostInit();
// Dungeon Prefabs // Dungeon Prefabs
ExpandCustomDungeonPrefabs.InitDungoenPrefabs(expandSharedAssets1, sharedAssets, sharedAssets2, braveResources); ExpandDungeonPrefabs.InitDungoenPrefabs(expandSharedAssets1, sharedAssets, sharedAssets2, braveResources);
} catch (Exception ex) { } catch (Exception ex) {
ETGModConsole.Log("[ExpandTheGungeon] ERROR: Exception occured while building prefabs!", true); ETGModConsole.Log("[ExpandTheGungeon] ERROR: Exception occured while building prefabs!", true);
@ -260,7 +260,7 @@ private enum WaitType { ShotgunSecret, LanguageFix, DebugFlow };
orig(self); orig(self);
self.OnNewLevelFullyLoaded += ExpandObjectMods.InitSpecialMods; self.OnNewLevelFullyLoaded += ExpandObjectMods.InitSpecialMods;
ExpandCustomDungeonPrefabs.ReInitFloorDefinitions(self); ExpandDungeonPrefabs.ReInitFloorDefinitions(self);
CreateFoyerController(); CreateFoyerController();
} }
@ -280,7 +280,7 @@ private enum WaitType { ShotgunSecret, LanguageFix, DebugFlow };
ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("list_items", ExpandCustomItemsInfo); ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("list_items", ExpandCustomItemsInfo);
ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("youtubemode", ExpandYouTubeSafeCommand); ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("youtubemode", ExpandYouTubeSafeCommand);
ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("savesettings", ExpandExportSettings); ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("savesettings", ExpandExportSettings);
ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("test", ExpandTestCommand); // ETGModConsole.Commands.GetGroup(MainCommandName).AddUnit("test", ExpandTestCommand);
return; return;
} }
@ -448,7 +448,7 @@ private enum WaitType { ShotgunSecret, LanguageFix, DebugFlow };
return; return;
} }
// Setup console command to point to this function. Expects name of collection followed by resolution X/Y (exmaple: EXItem_Collection 256 256) // Setup console command to point to this function. Expects name of collection followed by resolution X/Y (exmaple: 512 512 EXItemCollection)
// If you wish to manually specify path of output files add path as 4th parameter. // If you wish to manually specify path of output files add path as 4th parameter.
public void ExpandSerializeCollection(string[] consoleText) { public void ExpandSerializeCollection(string[] consoleText) {
try { try {
@ -504,26 +504,12 @@ private enum WaitType { ShotgunSecret, LanguageFix, DebugFlow };
ETGModConsole.Log("[ExpandTheGungeon] Sprite collection successfully built and exported!"); ETGModConsole.Log("[ExpandTheGungeon] Sprite collection successfully built and exported!");
} }
private void ExpandTestCommand(string[] consoleText) { /*private void ExpandTestCommand(string[] consoleText) {
/*GameStatsManager.Instance.ClearStatValueGlobal(TrackedStats.META_CURRENCY);
GameStatsManager.Instance.SetStat(TrackedStats.META_CURRENCY, float.Parse(consoleText[0]));
// GameStatsManager.Instance.RegisterStatChange(TrackedStats.META_CURRENCY_SPENT_AT_META_SHOP, 0);
if (consoleText[0].StartsWith("-")) {
GameStatsManager.Instance.RegisterStatChange(TrackedStats.META_CURRENCY, -int.Parse(consoleText[1]));
} else if (consoleText[0].StartsWith("+")) {
GameStatsManager.Instance.RegisterStatChange(TrackedStats.META_CURRENCY, +int.Parse(consoleText[1]));
}*/
//return;
// Tools.ExportTexture((GameManager.Instance.PrimaryPlayer.CurrentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.RoomClear)[0].sprite.Collection.materials[0].mainTexture as Texture2D).GetRW()); // Tools.ExportTexture((GameManager.Instance.PrimaryPlayer.CurrentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.RoomClear)[0].sprite.Collection.materials[0].mainTexture as Texture2D).GetRW());
GameObject NewChestTest = Instantiate(ExpandObjectDatabase.EndTimesChest, (GameManager.Instance.PrimaryPlayer.transform.position + new Vector3(0,2,0)), Quaternion.identity); GameObject NewChestTest = Instantiate(ExpandObjectDatabase.EndTimesChest, (GameManager.Instance.PrimaryPlayer.transform.position + new Vector3(0,2,0)), Quaternion.identity);
GameManager.Instance.PrimaryPlayer.CurrentRoom.RegisterInteractable(NewChestTest.GetComponent<ArkController>()); GameManager.Instance.PrimaryPlayer.CurrentRoom.RegisterInteractable(NewChestTest.GetComponent<ArkController>());
}*/
}
} }
} }

View File

@ -180,8 +180,8 @@
<Compile Include="ExpandMain\ExpandSynergies.cs" /> <Compile Include="ExpandMain\ExpandSynergies.cs" />
<Compile Include="ExpandPrefab\ExpandAlarmMushroomPlacable.cs" /> <Compile Include="ExpandPrefab\ExpandAlarmMushroomPlacable.cs" />
<Compile Include="ExpandPrefab\ExpandBootlegRoomPlaceable.cs" /> <Compile Include="ExpandPrefab\ExpandBootlegRoomPlaceable.cs" />
<Compile Include="ExpandPrefab\ExpandCustomEnemyDatabase.cs" /> <Compile Include="ExpandPrefab\ExpandEnemyDatabase.cs" />
<Compile Include="ExpandPrefab\ExpandCustomDungeonPrefabs.cs" /> <Compile Include="ExpandPrefab\ExpandDungeonPrefabs.cs" />
<Compile Include="ExpandPrefab\ExpandDungeonCollections.cs" /> <Compile Include="ExpandPrefab\ExpandDungeonCollections.cs" />
<Compile Include="ExpandPrefab\ExpandGungeoneerMimicBossPlacable.cs" /> <Compile Include="ExpandPrefab\ExpandGungeoneerMimicBossPlacable.cs" />
<Compile Include="ExpandPrefab\ExpandMorePrefabs.cs" /> <Compile Include="ExpandPrefab\ExpandMorePrefabs.cs" />

View File

@ -35,7 +35,7 @@ public class BabySitter : PassiveItem {
modifyType = StatModifier.ModifyMethod.MULTIPLICATIVE, modifyType = StatModifier.ModifyMethod.MULTIPLICATIVE,
}; };
CompanionGuid = ExpandCustomEnemyDatabase.FriendlyCultistGUID; CompanionGuid = ExpandEnemyDatabase.FriendlyCultistGUID;
m_PickedUp = false; m_PickedUp = false;
m_HasDied = false; m_HasDied = false;

View File

@ -161,12 +161,12 @@ public class BootlegGuns : Gun {
public static void PostInit() { public static void PostInit() {
if (BootlegPistol && BootlegPistol.gameObject.GetComponent<ExpandMaybeLoseAmmoOnDamage>()) { if (BootlegPistol && BootlegPistol.gameObject.GetComponent<ExpandMaybeLoseAmmoOnDamage>()) {
BootlegPistol.gameObject.GetComponent<ExpandMaybeLoseAmmoOnDamage>().TransfmorgifyTargetGUIDs = new List<string>() { BootlegPistol.gameObject.GetComponent<ExpandMaybeLoseAmmoOnDamage>().TransfmorgifyTargetGUIDs = new List<string>() {
ExpandCustomEnemyDatabase.BootlegBulletManGUID ExpandEnemyDatabase.BootlegBulletManGUID
}; };
} }
if (BootlegMachinePistol && BootlegMachinePistol.gameObject.GetComponent<ExpandMaybeLoseAmmoOnDamage>()) { if (BootlegMachinePistol && BootlegMachinePistol.gameObject.GetComponent<ExpandMaybeLoseAmmoOnDamage>()) {
BootlegMachinePistol.gameObject.GetComponent<ExpandMaybeLoseAmmoOnDamage>().TransfmorgifyTargetGUIDs = new List<string>() { BootlegMachinePistol.gameObject.GetComponent<ExpandMaybeLoseAmmoOnDamage>().TransfmorgifyTargetGUIDs = new List<string>() {
ExpandCustomEnemyDatabase.BootlegBulletManBandanaGUID ExpandEnemyDatabase.BootlegBulletManBandanaGUID
}; };
} }
if (BootlegShotgun && BootlegShotgun.gameObject.GetComponent<ExpandMaybeLoseAmmoOnDamage>()) { if (BootlegShotgun && BootlegShotgun.gameObject.GetComponent<ExpandMaybeLoseAmmoOnDamage>()) {

View File

@ -59,7 +59,7 @@ public class ClownBullets : PassiveItem {
m_player = player; m_player = player;
base.Pickup(player); base.Pickup(player);
player.PostProcessProjectile += PostProcessProjectile; player.PostProcessProjectile += PostProcessProjectile;
if (string.IsNullOrEmpty(TargetGUID)) { TargetGUID = ExpandCustomEnemyDatabase.ClownkinGUID; } if (string.IsNullOrEmpty(TargetGUID)) { TargetGUID = ExpandEnemyDatabase.ClownkinGUID; }
} }

View File

@ -19,7 +19,7 @@ public class ClownFriend : PassiveItem {
SpriteSerializer.AddSpriteToObject(ClownFriendObject, ExpandPrefabs.EXItemCollection, "clownfriend"); SpriteSerializer.AddSpriteToObject(ClownFriendObject, ExpandPrefabs.EXItemCollection, "clownfriend");
ClownFriend clownFriendItem = ClownFriendObject.AddComponent<ClownFriend>(); ClownFriend clownFriendItem = ClownFriendObject.AddComponent<ClownFriend>();
clownFriendItem.CompanionGuid = ExpandCustomEnemyDatabase.ClownkinAltGUID; clownFriendItem.CompanionGuid = ExpandEnemyDatabase.ClownkinAltGUID;
// clownFriendItem.CompanionPastGuid = string.Empty; // clownFriendItem.CompanionPastGuid = string.Empty;
// clownFriendItem.UsesAlternatePastPrefab = false; // clownFriendItem.UsesAlternatePastPrefab = false;
// clownFriendItem.Synergies = new CompanionTransformSynergy[0]; // clownFriendItem.Synergies = new CompanionTransformSynergy[0];
@ -48,7 +48,7 @@ public class ClownFriend : PassiveItem {
} }
public ClownFriend() { public ClownFriend() {
CompanionGuid = ExpandCustomEnemyDatabase.ClownkinAltGUID; CompanionGuid = ExpandEnemyDatabase.ClownkinAltGUID;
BalloonRespawnTimer = 30; BalloonRespawnTimer = 30;
BalloonWasPopped = false; BalloonWasPopped = false;

View File

@ -174,7 +174,7 @@ private static void Add(bool isGoldenVersion)
Projectile projectile = isGoldenVersion ? WestBrosGoldenRevolverProjectile.AddComponent<Projectile>() : WestBrosBlackRevolverProjectile.AddComponent<Projectile>(); Projectile projectile = isGoldenVersion ? WestBrosGoldenRevolverProjectile.AddComponent<Projectile>() : WestBrosBlackRevolverProjectile.AddComponent<Projectile>();
GameObject projectileChild = projectile.transform.Find("Sprite").gameObject; GameObject projectileChild = projectile.transform.Find("Sprite").gameObject;
tk2dSprite projetileSprite = SpriteSerializer.AddSpriteToObject(projectileChild, ExpandCustomEnemyDatabase.WestBrosCollection, "gr_black_revolver_projectile_001"); tk2dSprite projetileSprite = SpriteSerializer.AddSpriteToObject(projectileChild, ExpandEnemyDatabase.WestBrosCollection, "gr_black_revolver_projectile_001");
ExpandUtility.GenerateSpriteAnimator(projectileChild, playAutomatically: true); ExpandUtility.GenerateSpriteAnimator(projectileChild, playAutomatically: true);
ExpandUtility.AddAnimation(projectileChild.GetComponent<tk2dSpriteAnimator>(), projetileSprite.Collection, ProjectileSpriteList, "idle", tk2dSpriteAnimationClip.WrapMode.Loop, 13); ExpandUtility.AddAnimation(projectileChild.GetComponent<tk2dSpriteAnimator>(), projetileSprite.Collection, ProjectileSpriteList, "idle", tk2dSpriteAnimationClip.WrapMode.Loop, 13);

View File

@ -36,7 +36,7 @@ public class SonicBox : PassiveItem {
public SonicBox() { public SonicBox() {
CompanionGuid = ExpandCustomEnemyDatabase.SonicCompanionGUID; CompanionGuid = ExpandEnemyDatabase.SonicCompanionGUID;
DeathStatModifier = new StatModifier() { DeathStatModifier = new StatModifier() {
amount = 1.5f, amount = 1.5f,

View File

@ -31,5 +31,5 @@
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.9.6")] [assembly: AssemblyVersion("2.9.7")]
[assembly: AssemblyFileVersion("2.9.6")] [assembly: AssemblyFileVersion("2.9.7")]

Binary file not shown.