private void Initialise()
 {
     Aliases              = new List <Verticle>();
     Triangles            = new List <Vector3>();
     meshState            = VerticleState.Standard;
     WallsWaitingToBeMade = new List <int>();
 }
示例#2
0
        public void Update()
        {
            if (state == VerticleState.Destroyed)
            {
                return;
            }

            if (state == VerticleState.Ground)
            {
                return;
            }

            if (health <= 0)
            {
                Destroy();
                state = VerticleState.Destroyed;
                return;
            }

            if (state == VerticleState.Burning)
            {
                InflictDamage();
                TryToFireLinkedAliases();
                TryToFireLinkedAliasesFromOtherBranches();
            }

            if (TryingToBeFired && state != VerticleState.Burning)
            {
                state = VerticleState.Burning;
            }
        }
 private void Initialise()
 {
     Aliases              = new List <Verticle>();
     Triangles            = new List <Vector3>();
     meshState            = VerticleState.Standard;
     WallsWaitingToBeMade = new List <int>();
     PlannedTrianglesToBeMadeBetweenAliasAndTwin = new List <Vector2>();
 }
示例#4
0
 private void Initialise()
 {
     Triangles        = new List <int>();
     LinkedAliases    = new List <int>();
     Aliases          = new List <int>();
     state            = VerticleState.Standard;
     positionAbsolute = Vector3.zero;
     health           = 1.0f;
 }
    private void CheckIfSeparated()
    {
        int currentNumber = -1;

        for (int i = 0; i < Aliases.Count / 2; i++)
        {
            VerticleState state = Aliases[i].state;
            if ((state == VerticleState.Standard) || (state == VerticleState.Burning))          //we have found a normal Alias
            {
                currentNumber = i;
                break;
            }
        }

        if (currentNumber != -1)          //if we in fact found something
        {
            List <int> LinkedList = new List <int>();
            int        CurrentNumberOfGroundAliases = 0;
            SeparationCheckLinkedAliases(currentNumber, LinkedList, ref CurrentNumberOfGroundAliases);
        }
    }
        public void ImmediatelyDestroy()         //don,t bother sending info to other aliases, just change Traingles list in MeshManager and verticleState
        {
            DestroyTriangles();
            state = VerticleState.Destroyed;

            for (int i = 0; i < LinkedAliases.Count; i++)
            {
                OwnerManager.Aliases[LinkedAliases[i]].RemoveLink(number);
                foreach (int l in Triangles)
                {
                    OwnerManager.Aliases[LinkedAliases[i]].RemoveLink(number);
                }
                RemoveLink(LinkedAliases[i]);
            }
            RemoveAllLinksToOtherBranches();

            if ((OwnerManager.IsMeshThick == true) && IsATwin == false)         //send info to twin
            {
                OwnerManager.Aliases[number + (OwnerManager.Aliases.Count / 2)].ImmediatelyDestroy();
            }
        }
        public void Update()
        {
            if (health == 9999f)            //it is still unassigned
            {
                health = CalculateHealth();
            }

            if (state == VerticleState.Destroyed)
            {
                return;
            }

            if (state == VerticleState.Ground)
            {
                return;
            }

            if (health <= 0)
            {
                Destroy();
                state = VerticleState.Destroyed;
                return;
            }

            if (state == VerticleState.Burning)
            {
                InflictDamage();
                TryToFireLinkedAliases();
                TryToFireLinkedAliasesFromOtherBranches();
            }

            if ((TryingToBeFired >= 1f) && state != VerticleState.Burning)
            {
                state = VerticleState.Burning;
                OwnerManager.ownerManager.StartFireOfVerticleInInterMeshConnection(OwnerManager.number, number);
            }
        }