public override void Effect1(EntityPlayer player, Emplacement place, OptionEffect opt) { Printer.Log(60, "Geyser Effect1", place.position, place.ipos, opt.OptionBlock.blocks, opt.OptionShape.shape); Zombiome.Routines.Named("Geyser").Start( // treeGib_birch_15m creates falling leaves above smoke :( Routines.Call(EffectsItem.SpawnParticle, place.position, "treeGib_burnt_small"), new WaitForSeconds(1f), EffectsGround.Peak(player, place, opt) ); }
public override void Effect1(EntityPlayer player, Emplacement place, OptionEffect opt) { Printer.Log(60, "Peak Effect1", place.position, place.ipos, opt.OptionBlock.blocks, opt.OptionShape.shape); // FIXME: this syntax cannot be merged ! Zombiome.Routines.Named("Peak").Start( Routines.Call(biome.groundParticleEffect, place.ipos), ZBActivity.Environment.ZBSounds.Play(this.biome.groundNoise, place.position, player, World, 2, 0, 0.2f), new WaitForSeconds(1f), EffectsGround.Peak(player, place, opt) ); }
public override void Effect1(EntityPlayer player, Emplacement place, OptionEffect opt) { Printer.Log(60, "Peak Effect1", place.position, place.ipos, opt.OptionBlock.blocks, opt.OptionShape.shape); // FIXME: this syntax cannot be merged ! Zombiome.Routines.Named("Peak").Start( // treeGib_birch_15m creates falling leaves above smoke :( Routines.Call(biome.groundParticleEffect, place.ipos), // "treeGib_burnt_small" new WaitForSeconds(1f), EffectsGround.Peak(player, place, opt) ); }
public override IEnumerator Apply(EntityPlayer player, EntityAlive target, OptionEffect opt) { Vector3 pos = target.GetPosition(); Emplacement place = Emplacement.At(pos, Placer.directions.Generate(pos)); Printer.Log(40, "Peak Effect1", place.position, place.ipos, opt.OptionBlock.blocks, opt.OptionShape.shape); Zombiome.Routines.Named("PeakAt").Start( Routines.Call(biome.groundParticleEffect, place.ipos), new WaitForSeconds(1f), EffectsGround.Peak(player, place, opt) ); yield break; }
private IEnumerator PeakProj(EntityPlayer player, Emplacement place, OptionEffect opt) { yield return(EffectsGround.Peak(player, place, opt)); for (int k = 0; k < 10; k++) { Vector3 pos = place.position + (opt.OptionShape.shape.y + 2) * Vectors.Float.UnitY; yield return(EffectsItem.spawnItemGhost(opt.OptionItem.item, pos, 3 * (Vectors.Float.UnitY + Placer.directions.Generate(pos).normalized) )); yield return(new WaitForSeconds(0.5f)); } }
public override void Effect1(EntityPlayer player, Emplacement place, OptionEffect opt) { World World = GameManager.Instance.World; Vector3i ipos = place.ipos; Vector3i surf = Geo3D.Surface(ipos, (int)player.GetPosition().y); BlockValue existingB = World.GetBlock(surf + Vectors.Up); string existing = existingB.Block.ToString(); if (existingB.type == 0) // air { BlockValue insert = GenBV(); World.SetBlockRPC(0, surf + Vectors.Up, insert); } else { if (!decorationsSet.Contains(existing)) { return; } } Zombiome.Routines.Start(EffectsGround.Peak(player, place, opt), "FloatingDeco-Peak"); }