public override void Effect1(EntityPlayer player, Emplacement place, OptionEffect opt) { Printer.Log(40, "Puit Effect1", place.position, place.ipos, opt.OptionBlock.blocks, opt.OptionShape.shape); Zombiome.Routines.Named("Puit").Start( Routines.Call(biome.groundParticleEffect, place.ipos), new WaitForSeconds(1f), EffectsCollapse.Puit(player, place, opt) ); }
public override void Effect1(EntityPlayer player, Emplacement place, OptionEffect opt) { Printer.Log(40, "Cave Effect1", place.position, place.ipos, opt.OptionBlock.blocks, opt.OptionShape.shape); Zombiome.Routines.Named("Cave").Start( Routines.Call(biome.groundParticleEffect, place.ipos), ZBActivity.Environment.ZBSounds.Play("light_pipebomb", place.position, player, World, 1, 0, 0.2f), new WaitForSeconds(1f), EffectsCollapse.Cave(player, place, opt) ); }
public override void Effect1(EntityPlayer player, Emplacement place, OptionEffect opt) { Printer.Log(40, "RiftCollapse Effect1", place.position, place.ipos, opt.OptionBlock.blocks, opt.OptionShape.shape); // Zombiome.Routines.Start(EffectsCollapse.Rift(player, place, opt), "RiftCollapse"); Zombiome.Routines.Named("RiftCollapse").Start( Routines.Call(biome.groundParticleEffect, place.ipos), ZBActivity.Environment.ZBSounds.Play(ZBiomeInfo.NoiseCollapse, place.position, player, World, 1, 20, 0.2f), new WaitForSeconds(1f), EffectsCollapse.Rift(player, place, opt) ); }
public override IEnumerator Regen(EntityPlayer player, Vector3i zchunk, int iniguess) { yield return(ZBActivity.Environment.ZBSounds.Play(ZBiomeInfo.NoiseWater, player.GetPosition(), player, World, 2, 0, 0.5f)); int gen = ZChunk.Size(this.gen); Vector3[] positions = ZChunk.Positions(Zombiome.worldSeed, zchunk, gen); foreach (Vector3 pos in positions) { Printer.Log(40, "Flood regen", zchunk, pos); Vector3i surfaced = Geo3D.Surface(Vectors.ToInt(pos), iniguess); Emplacement place = Emplacement.At(Vectors.ToFloat(surfaced), Vectors.Float.UnitY); /* Generate Emplacement => apply filter from gth */ int th = GameManager.Instance.World.GetTerrainHeight(surfaced.x, surfaced.z); bool go = th > 5; if (go) { go = surfaced.y < th + Placer.pOffSurface; } if (go) { go = surfaced.y > th - Placer.nOffSurface; } if (go) { go = !(IsWater(World.GetBlock(surfaced + Vectors.Up).Block) && IsWater(World.GetBlock(surfaced + 2 * Vectors.Up).Block)); } if (go) { Printer.Log(40, "Flood at", place); // Dont do it if already water, surtout qu'on affaisse la surface !! // Cave allows to bound water by ground yield return(EffectsCollapse.Cave(player, place, opt)); } yield return(Repeater.Yield); } }