示例#1
0
 public override void Effect1(EntityPlayer player, Emplacement place, OptionEffect opt)
 {
     Printer.Log(40, "_Line Effect1", place.position, place.ipos, opt.OptionBlock.blocks, opt.OptionShape.shape);
     Zombiome.Routines.Named("_Line").Start(
         Routines.Call(biome.groundParticleEffect, place.ipos),
         new WaitForSeconds(1f),
         EffectsGround.LineSurface(place, opt)
         );
 }
示例#2
0
 public override void Effect1(EntityPlayer player, Emplacement place, OptionEffect opt)
 {
     Printer.Log(40, "TrapLine Effect1", place.position, place.ipos, opt.OptionBlock.blocks, opt.OptionShape.shape);
     Zombiome.Routines.Named("TrapLine").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.TrapLine(player, place, opt)
         );
 }
示例#3
0
 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)
         );
 }
示例#4
0
 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)
         );
 }
示例#5
0
        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;
        }
示例#6
0
        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));
            }
        }
示例#7
0
        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");
        }