Exemplo n.º 1
0
        protected void Explode(float delay)
        {
            for (int i = m_explodeVoxels.Count - 1; i >= 0; --i)
            {
                ExplodeCmd explodeCmd = m_explodeVoxels[i];
                m_explodeVoxels.RemoveAt(i);

                if (explodeCmd.VoxelData.VoxelRef != null)
                {
                    if (explodeCmd.VoxelData.IsAlive)
                    {
                        explodeCmd.VoxelData.VoxelRef.Health = explodeCmd.VoxelData.Health;
                    }
                    else
                    {
                        explodeCmd.VoxelData.VoxelRef.Explode(delay, explodeCmd.Health);
                    }
                }
            }
        }
Exemplo n.º 2
0
        protected override void OnVoxelRefResetOverride(Voxel voxel)
        {
            base.OnVoxelRefResetOverride(voxel);

            for (int i = 0; i < m_eatCommands.Count; ++i)
            {
                EatCmd cmd = m_eatCommands[i];
                if (cmd.Voxel != null && cmd.Voxel.VoxelRef != null)
                {
                    cmd.Voxel.VoxelRef.Kill();
                }
            }
            m_eatCommands.Clear(); //not cleared eat commands may lead to spawing of new objects
            CollapseEatExpandClear(m_currentTick);

            for (int i = m_explodeVoxels.Count - 1; i >= 0; --i)
            {
                ExplodeCmd explodeCmd = m_explodeVoxels[i];

                if (explodeCmd.VoxelData != m_controlledVoxel.VoxelData)
                {
                    if (explodeCmd.VoxelData.VoxelRef != null)
                    {
                        if (explodeCmd.VoxelData.IsAlive)
                        {
                            explodeCmd.VoxelData.VoxelRef.Health = explodeCmd.VoxelData.Health;
                        }
                        else
                        {
                            explodeCmd.VoxelData.VoxelRef.Kill();
                        }
                    }
                }
            }

            m_explodeVoxels.Clear();
        }