void Check_Destroy_OR()
 {
     // Check Tags and remaining Auto ReSpawn Times.
     for (int i = 0; i < Trigger_Tanks.Length; i++)
     {
         if (Trigger_Tanks [i] && Trigger_Tanks [i].tag == "Finish")
         {
             Tank_ID_Control_CS Temp_Script = Trigger_Tanks [i].GetComponentInChildren <Tank_ID_Control_CS> ();
             if (Temp_Script && Temp_Script.ReSpawn_Times == 0)
             {
                 Flag = false;
                 Start_Event();
                 break;
             }
         }
     }
 }
 void Check_Destroy_AND()
 {
     // Check Tags.
     if (All_Trigger_Flag)
     {
         for (int i = 0; i < Trigger_Tanks.Length; i++)
         {
             if (Trigger_Tanks [i] && Trigger_Tanks [i].tag != "Finish")
             {
                 return;
             }
         }
     }
     else
     {
         int Temp_Num = 0;
         for (int i = 0; i < Trigger_Tanks.Length; i++)
         {
             if (Trigger_Tanks [i] && Trigger_Tanks [i].tag == "Finish")
             {
                 Temp_Num += 1;
             }
         }
         if (Temp_Num < Necessary_Num)
         {
             return;
         }
     }
     // Check the remaining Auto ReSpawn Times.
     for (int i = 0; i < Trigger_Tanks.Length; i++)
     {
         if (Trigger_Tanks [i] && Trigger_Tanks [i].tag == "Finish")
         {
             Tank_ID_Control_CS Temp_Script = Trigger_Tanks [i].GetComponentInChildren <Tank_ID_Control_CS> ();
             if (Temp_Script && Temp_Script.ReSpawn_Times > 0)
             {
                 return;
             }
         }
     }
     // All the Auto ReSpawn Times are zero.
     Flag = false;
     Start_Event();
 }
 void Remove_Tank()
 {
     for (int i = 0; i < Target_Tanks.Length; i++)
     {
         // Delete Event_Controller_CS script.
         Event_Controller_CS Temp_Event_Script = Target_Tanks [i].GetComponentInChildren <Event_Controller_CS> ();
         if (Temp_Event_Script)
         {
             Destroy(Temp_Event_Script);
         }
         // Call "Remove_Tank()" in the Tank_ID_Control_CS script.
         Tank_ID_Control_CS Temp_Top_Script = Target_Tanks [i].GetComponentInChildren <Tank_ID_Control_CS> ();
         if (Temp_Top_Script)
         {
             Temp_Top_Script.StartCoroutine("Remove_Tank", 0.0f);
         }
     }
     if (Flag == false)
     {
         Destroy(this.gameObject);
     }
 }
 void Change_AI_Settings()
 {
     for (int i = 0; i < Target_Tanks.Length; i++)
     {
         // for waiting AI tank.
         Event_Controller_CS Temp_Event_Script = Target_Tanks [i].GetComponentInChildren <Event_Controller_CS> ();
         if (Temp_Event_Script)
         {
             Temp_Event_Script.WayPoint_Pack = New_WayPoint_Pack;
             Temp_Event_Script.Patrol_Type   = New_Patrol_Type;
             Temp_Event_Script.Follow_Target = New_Follow_Target;
             Temp_Event_Script.No_Attack     = New_No_Attack;
         }
         // for living AI tank.
         AI_CS Temp_AI_Script = Target_Tanks [i].GetComponentInChildren <AI_CS> ();
         if (Temp_AI_Script)
         {
             Temp_AI_Script.Change_AI_Settings(this);
         }
         // for Respawn.
         Tank_ID_Control_CS Temp_Top_Script = Target_Tanks [i].GetComponentInChildren <Tank_ID_Control_CS> ();
         if (Temp_Top_Script)
         {
             Temp_Top_Script.WayPoint_Pack = New_WayPoint_Pack;
             Temp_Top_Script.Patrol_Type   = New_Patrol_Type;
             Temp_Top_Script.Follow_Target = New_Follow_Target;
             Temp_Top_Script.No_Attack     = New_No_Attack;
             if (Renew_ReSpawn_Times_Flag)
             {
                 Temp_Top_Script.ReSpawn_Times = New_ReSpawn_Times;
             }
         }
     }
     if (Flag == false)
     {
         Destroy(this.gameObject);
     }
 }
Exemple #5
0
    void Variables_Settings()
    {
        Event_Controller_CS Event_Script = GetComponentInParent <Event_Controller_CS> ();

        if (Event_Script && Event_Script.OverWrite_Flag)             // Use settings in Event_Controller.
        {
            WayPoint_Pack      = Event_Script.WayPoint_Pack;
            Patrol_Type        = Event_Script.Patrol_Type;
            Follow_Target      = Event_Script.Follow_Target;
            No_Attack          = Event_Script.No_Attack;
            Visibility_Radius  = Event_Script.Visibility_Radius;
            Approach_Distance  = Event_Script.Approach_Distance;
            OpenFire_Distance  = Event_Script.OpenFire_Distance;
            Lost_Count         = Event_Script.Lost_Count;
            Face_Enemy         = Event_Script.Face_Enemy;
            Face_Offest_Angle  = Event_Script.Face_Offest_Angle;
            AI_State_Text      = Event_Script.AI_State_Text;
            Tank_Name          = Event_Script.Tank_Name;
            Default_Text_Color = Event_Script.Default_Text_Color;
        }
        else             // Use settings in Tank_ID_Control.
        {
            Tank_ID_Control_CS Top_Script = GetComponentInParent <Tank_ID_Control_CS> ();
            WayPoint_Pack      = Top_Script.WayPoint_Pack;
            Patrol_Type        = Top_Script.Patrol_Type;
            Follow_Target      = Top_Script.Follow_Target;
            No_Attack          = Top_Script.No_Attack;
            Visibility_Radius  = Top_Script.Visibility_Radius;
            Approach_Distance  = Top_Script.Approach_Distance;
            OpenFire_Distance  = Top_Script.OpenFire_Distance;
            Lost_Count         = Top_Script.Lost_Count;
            Face_Enemy         = Top_Script.Face_Enemy;
            Face_Offest_Angle  = Top_Script.Face_Offest_Angle;
            AI_State_Text      = Top_Script.AI_State_Text;
            Tank_Name          = Top_Script.Tank_Name;
            Default_Text_Color = Top_Script.Default_Text_Color;
        }
    }
    void Start()
    {
        Tank_ID_Control_CS Top_Script = GetComponentInParent <Tank_ID_Control_CS>();

        Attack_Multiplier = Top_Script.Attack_Multiplier;
    }