Inheritance: MonoBehaviour
Example #1
0
        private static IEnumerator EXP(ObjectiveScript __instance)
        {
            int exp = Random.Range(10, 50) + GameScript.challengeLevel * 255;

            GadgetCoreAPI.SpawnExp(new Vector3(__instance.transform.position.x, __instance.transform.position.y, 0f), exp, 0.2f);
            yield break;
        }
 void Start()
 {
     character1 = transform.Find("Character1").gameObject.GetComponent <CharacterScript>();
     character2 = transform.Find("Character2").gameObject.GetComponent <CharacterScript>();
     character3 = transform.Find("Character3").gameObject.GetComponent <CharacterScript>();
     characters = new List <CharacterScript> {
         character1, character2, character3
     };
     foreach (CharacterScript character in characters)
     {
         character.priority = firePriority.LOWHP;
     }
     // allVisibleEnemyLocations = new HashSet<Vector3>();
     // allAttackedFromLocations = new List<Vector3>();
     middleObjective = GameObject.Find("MiddleObjective").GetComponent <ObjectiveScript>();
     leftObjective   = GameObject.Find("LeftObjective").GetComponent <ObjectiveScript>();
     rightObjective  = GameObject.Find("RightObjective").GetComponent <ObjectiveScript>();
     allObjectives   = new List <ObjectiveScript> {
         middleObjective, leftObjective, rightObjective
     };
     targetObjective = new List <ObjectiveScript> {
         null, null, null
     };
     ourTeamColor = character1.getTeam();
     if (ourTeamColor == team.blue)
     {
         ourBase   = zone.BlueBase;
         enemyBase = zone.RedBase;
     }
     else
     {
         ourBase   = zone.RedBase;
         enemyBase = zone.BlueBase;
     }
 }
    void Start()
    {
        character1 = transform.Find("Character1").gameObject.GetComponent <CharacterScript>();
        character2 = transform.Find("Character2").gameObject.GetComponent <CharacterScript>();
        character3 = transform.Find("Character3").gameObject.GetComponent <CharacterScript>();

        middleObjective = GameObject.Find("MiddleObjective").GetComponent <ObjectiveScript>();
        leftObjective   = GameObject.Find("LeftObjective").GetComponent <ObjectiveScript>();
        rightObjective  = GameObject.Find("RightObjective").GetComponent <ObjectiveScript>();

        teamName = "none";

        characterOneShouldCaptureObjective   = false;
        characterTwoShouldCaptureObjective   = true;
        characterThreeShouldCaptureObjective = true;

        characterOneShouldSpawnCamp   = false;
        characterTwoShouldSpawnCamp   = false;
        characterThreeShouldSpawnCamp = false;

        characterOneShouldRotate   = true;
        characterTwoShouldRotate   = true;
        characterThreeShouldRotate = true;

        characterOneShouldGetItems = true;

        degrees1 = 1;
        degrees2 = 1;
        degrees3 = 1;

        InvokeRepeating("gameTimer", 0.0f, 0.5f);
    }
    void Combat()
    {
        ActiveObjective = ChooseNewObjective();
        //Find closest enemy to rotation
        foreach (var item in Self.visibleEnemyLocations)
        {
            CurrentEnemy = item;
        }
        foreach (var item in Self.attackedFromLocations)
        {
            CurrentEnemy = item;
        }

        Self.SetFacing(CurrentEnemy);
        Self.MoveChar(Self.FindClosestCover(CurrentEnemy));


        //if out of combat time return to objective state
        if (CombatTime < 0)
        {
            switchedStates = true;
            state          = 0;
        }

        Self.attackedFromLocations.Clear();
    }
 public Agent(CharacterScript character, ObjectiveScript firstObjective)
 {
     Self            = character;
     ActiveObjective = firstObjective;
     Self.addDyingListener(onDeath);
     Self.addHitListener(combatRefresh1);
     Self.addShotListener(combatRefresh2);
 }
Example #6
0
 void Update()
 {
     if (objective == null)
     {
         objective = ObjectiveScript.instance;
     }
     transform.localEulerAngles = Utils.RotateTo(objective.transform.position - transform.position);
 }
Example #7
0
    // Update is called once per frame
    void Update()
    {
        if (life > 0)
        {
            life -= Time.deltaTime;

            //check if bullet will hit anything in front of it because bullet moves too fast
            RaycastHit hit;
            if (Physics.Raycast(transform.position, transform.forward, out hit, 2.4f))
            {
                if (hit.transform.name == "Player(Clone)")
                {
                    if (Network.isServer)
                    {
                        PlayerScript script = hit.transform.gameObject.GetComponent("PlayerScript") as PlayerScript;
                        script.rpcGetHit(ad, sd, hit.transform.networkView.owner);
                    }
                    destroy();
                }
                if (hit.transform.name == "Tank(Clone)")
                {
                    if (Network.isServer)
                    {
                        TankScript script = hit.transform.gameObject.GetComponent("TankScript") as TankScript;
                        script.rpcGetHit(ad, sd, hit.transform.networkView.owner);
                    }
                    destroy();
                }
                if (hit.transform.name == "Jet(Clone)")
                {
                    if (Network.isServer)
                    {
                        JetScript script = hit.transform.gameObject.GetComponent("JetScript") as JetScript;
                        script.rpcGetHit(ad, sd, hit.transform.networkView.owner);
                    }
                    destroy();
                }
                if (hit.transform.gameObject.tag == "Objective")
                {
                    if (Network.isServer)
                    {
                        ObjectiveScript script = hit.transform.parent.gameObject.GetComponent("ObjectiveScript") as ObjectiveScript;
                        script.objectiveHit(ad, sd);
                    }
                    destroy();
                }
            }
        }

        else
        {
            destroy();
        }
    }
Example #8
0
    void Start()
    {
        // populate the objectives
        middleObjective = GameObject.Find("MiddleObjective").GetComponent <ObjectiveScript>();
        leftObjective   = GameObject.Find("LeftObjective").GetComponent <ObjectiveScript>();
        rightObjective  = GameObject.Find("RightObjective").GetComponent <ObjectiveScript>();

        character1 = transform.Find("Character1").gameObject.GetComponent <CharacterScript>();
        character2 = transform.Find("Character2").gameObject.GetComponent <CharacterScript>();
        character3 = transform.Find("Character3").gameObject.GetComponent <CharacterScript>();
    }
Example #9
0
    void Start()
    {
        character1 = transform.Find("Character1").gameObject.GetComponent <CharacterScript>();
        character2 = transform.Find("Character2").gameObject.GetComponent <CharacterScript>();
        character3 = transform.Find("Character3").gameObject.GetComponent <CharacterScript>();

        middleObjective = GameObject.Find("MiddleObjective").GetComponent <ObjectiveScript>();
        leftObjective   = GameObject.Find("LeftObjective").GetComponent <ObjectiveScript>();
        rightObjective  = GameObject.Find("RightObjective").GetComponent <ObjectiveScript>();

        teamName = "none";
    }
Example #10
0
    protected void DrawScript(ObjectiveScript script, ObjectiveState objective, int scriptIndex)
    {
        miniButtonStyle.stretchWidth = true;

        switch (script.GetType().Name)
        {
        //should be done with reflection
        case "ObjectiveGetQuestItem":
            ObjectiveGetQuestItem ogqe = (ObjectiveGetQuestItem)script;
            GUILayout.Label("Item Name:", MiniLabelStyle);
            ogqe.ItemName = GUILayout.TextField(ogqe.ItemName);
            break;

        case "ObjectiveConversationExchange":
            ObjectiveConversationExchange oce = (ObjectiveConversationExchange)script;
            GUILayout.Label("Conversation Name:", MiniLabelStyle);
            oce.ConversationName = GUILayout.TextField(oce.ConversationName);
            GUILayout.Label("Exchange Name:", MiniLabelStyle);
            oce.ExchangeName = GUILayout.TextField(oce.ExchangeName);
            break;

        case "ObjectiveCharacterReachQuestNode":
            ObjectiveCharacterReachQuestNode ocrqn = (ObjectiveCharacterReachQuestNode)script;
            GUILayout.Label("Character Name:", MiniLabelStyle);
            ocrqn.CharacterName = GUILayout.TextField(ocrqn.CharacterName);
            GUILayout.Label("Quest Node Name:", MiniLabelStyle);
            ocrqn.QuestNodeName = GUILayout.TextField(ocrqn.QuestNodeName);
            break;

        case "ObjectiveVisitLocation":
            ObjectiveVisitLocation ovl = (ObjectiveVisitLocation)script;
            DrawMobileReference(ovl.LocationReference);
            break;

        case "ObjectivePreventCharacterDeath":
            ObjectivePreventCharacterDeath opcd = (ObjectivePreventCharacterDeath)script;
            GUILayout.Label("Character Name:", MiniLabelStyle);
            opcd.CharacterName = GUILayout.TextField(opcd.CharacterName);
            break;

        default:
            GUILayout.Label("(Unknown script type)", MiniLabelStyle);
            break;
        }

        miniButtonStyle.stretchWidth = false;
        GUI.color = Color.red;
        if (GUILayout.Button("X"))
        {
            deleteScriptObjective        = objective;
            objectiveScriptIndexToDelete = scriptIndex;
        }
    }
 void Start()
 {
     character1      = transform.Find("Character1").gameObject.GetComponent <CharacterScript>();
     character2      = transform.Find("Character2").gameObject.GetComponent <CharacterScript>();
     character3      = transform.Find("Character3").gameObject.GetComponent <CharacterScript>();
     middleObjective = GameObject.Find("MiddleObjective").GetComponent <ObjectiveScript>();
     leftObjective   = GameObject.Find("LeftObjective").GetComponent <ObjectiveScript>();
     rightObjective  = GameObject.Find("RightObjective").GetComponent <ObjectiveScript>();
     ourTeamColor    = character1.getTeam();
     agent1          = new Agent(character1, leftObjective);
     agent2          = new Agent(character2, middleObjective);
     agent3          = new Agent(character3, rightObjective);
 }
Example #12
0
 private void ObjectiveSecured(team t, ObjectiveScript objectiveScript)
 {
     HUDScript.NotifyObjective(t);
     if (objectiveScript == objective0)
     {
         securedObjectives[0] = t;
     }
     else if (objectiveScript == objective1)
     {
         securedObjectives[1] = t;
     }
     else if (objectiveScript == objective2)
     {
         securedObjectives[2] = t;
     }
 }
    void Start()
    {
        // Set up code. This populates your characters with their controlling scripts
        character1 = transform.Find("Character1").gameObject.GetComponent <CharacterScript>();
        character2 = transform.Find("Character2").gameObject.GetComponent <CharacterScript>();
        character3 = transform.Find("Character3").gameObject.GetComponent <CharacterScript>();

        // populate the objectives
        middleObjective = GameObject.Find("MiddleObjective").GetComponent <ObjectiveScript>();
        leftObjective   = GameObject.Find("LeftObjective").GetComponent <ObjectiveScript>();
        rightObjective  = GameObject.Find("RightObjective").GetComponent <ObjectiveScript>();

        // save our team, changes every time
        ourTeamColor = character1.getTeam();
        //Makes gametimer call every second
        InvokeRepeating("gameTimer", 0.0f, 1.0f);
    }
    void Objective()
    {
        switchedStates = false;
        //Check if there is combat.
        if (Self.visibleEnemyLocations.Count != 0 || Self.attackedFromLocations.Count != 0)
        {
            CombatTime = .5f;
            state      = 1;
        }


        //Check if target objective has been taken
        if (ActiveObjective.getControllingTeam() == KEYBOARD_WARRIORS.ourTeamColor)
        {
            ActiveObjective = ChooseNewObjective();
        }

        //Spin
        Self.rotateAngle(150);

        //If low hp then get items
        foreach (var item in Self.getItemList())
        {
            if (Self.getHP() < 50 && Self.getItemList().Count > 0 && Mathf.Abs((item.transform.position - Self.transform.position).magnitude) < 40)
            {
                itemTime       = 5;
                switchedStates = true;
                state          = 2;
            }
        }
        //If an item is near and not an objective get item
        foreach (var item in Self.getItemList())
        {
            if (Mathf.Abs((item.transform.position - Self.transform.position).magnitude) < 10)
            {
                switchedStates = true;
                itemTime       = 2;
                state          = 2;
            }
        }

        //Move to objective.
        Self.MoveChar(ActiveObjective.getObjectiveLocation());
    }
Example #15
0
    void Start()
    {
        // get game specific objects
        character1 = transform.Find("Character1").gameObject.GetComponent <CharacterScript>();
        character2 = transform.Find("Character2").gameObject.GetComponent <CharacterScript>();
        character3 = transform.Find("Character3").gameObject.GetComponent <CharacterScript>();
        prefab1    = character1.getPrefabObject();
        prefab2    = character2.getPrefabObject();
        prefab3    = character3.getPrefabObject();

        middleObjective = GameObject.Find("MiddleObjective").GetComponent <ObjectiveScript>();
        leftObjective   = GameObject.Find("LeftObjective").GetComponent <ObjectiveScript>();
        rightObjective  = GameObject.Find("RightObjective").GetComponent <ObjectiveScript>();

        // determine color and zone
        ourTeamColor = character1.getTeam();
        if (ourTeamColor == team.red)
        {
            ourTeamZone    = zone.RedBase;
            closeObjective = leftObjective;
            farObjective   = rightObjective;
        }
        else
        {
            ourTeamZone    = zone.BlueBase;
            closeObjective = rightObjective;
            farObjective   = leftObjective;
        }

        // set priority
        // I choose LOWHP since it facilitates more 2 on 1 scenario
        // and a faster 5 points for the first kill
        character1.priority = firePriority.LOWHP;
        character2.priority = firePriority.LOWHP;
        character3.priority = firePriority.LOWHP;
    }
Example #16
0
 //bullet hits something
 void OnCollisionEnter(Collision hit)
 {
     if (Network.isServer)
     {
         if (hit.transform.gameObject.tag == "Objective")
         {
             ObjectiveScript script = hit.transform.parent.gameObject.GetComponent("ObjectiveScript") as ObjectiveScript;
             script.objectiveHit(ad, sd);
         }
         if (hit.transform.name == "Player(Clone)")
         {
             if (Network.isServer)
             {
                 PlayerScript script = hit.transform.gameObject.GetComponent("PlayerScript") as PlayerScript;
                 script.rpcGetHit(ad, sd, hit.transform.networkView.owner);
             }
         }
         if (hit.transform.name == "Tank(Clone)")
         {
             if (Network.isServer)
             {
                 TankScript script = hit.transform.gameObject.GetComponent("TankScript") as TankScript;
                 script.rpcGetHit(ad, sd, hit.transform.networkView.owner);
             }
         }
         if (hit.transform.name == "Jet(Clone)")
         {
             if (Network.isServer)
             {
                 JetScript script = hit.transform.gameObject.GetComponent("JetScript") as JetScript;
                 script.rpcGetHit(ad, sd, hit.transform.networkView.owner);
             }
         }
     }
     destroy();
 }
 void nullping(team t, ObjectiveScript o)
 {
 }
Example #18
0
 void OnEnable()
 {
     instance = this;
 }
 public static void Postfix(ObjectiveScript __instance)
 {
     LootTables.DropLoot("special:objective", new Vector3(__instance.transform.position.x, __instance.transform.position.y, 0f), 0.1f);
 }
Example #20
0
 void Update()
 {
     if (objective == null)
       objective = ObjectiveScript.instance;
     transform.localEulerAngles = Utils.RotateTo(objective.transform.position - transform.position);
 }
Example #21
0
 void OnEnable()
 {
     instance = this;
 }
Example #22
0
 void OnObjectComplete(ObjectiveScript targetThatFinished)
 {//when something with an objectivescript says that the target is finished it changes to win state
     //this is used with the touch the exit or goal
     gameState = StateGame.win;
 }
Example #23
0
    // Update is called once per frame
    void Update()
    {
        if (Network.isServer)
        {
            //Debug.Log(Network.connections.Length);
            if (state == GameState.cooldown)
            {
                //Debug.Log(timer);
                setTimer(timer);         //set everyone's timer
                timer -= Time.deltaTime; //start countdown

                if (timer <= 0)
                {
                    state = GameState.play; //set to play state
                    setGameState("p");      //set everyone's play state
                    currentwave++;          //add wave
                    setWave(currentwave);   //add wave for everyone
                    //reset
                    spawnedenemies = 0;
                    killedenemies  = 0;
                    currentenemies = 0;

                    //totalenemies = 5 * currentwave + (Network.connections.Length) * 5 * currentwave; //determine how many enemies based on wave and number of players
                    totalenemies = 4 * currentwave + (Network.connections.Length) * 5 * currentwave; //determine how many enemies based on wave and number of players

                    /*
                     * Debug.Log("KILLEDENEMIES:"+killedenemies);
                     * Debug.Log("TOTALENEMIES:"+totalenemies);*/
                    //set killed and total enemies counters for everyone
                    setEnemiesKilled(killedenemies);
                    setTotalEnemies(totalenemies);
                    //spawn enemies
                    for (int c = 0; c < MAXENEMIES && c < totalenemies; c++)
                    {
                        SpawnEnemy();
                    }

                    //tell objective a new wave is starting
                    ObjectiveScript script = GameObject.Find("Objective(Clone)").GetComponent("ObjectiveScript") as ObjectiveScript;
                    script.newWave(currentwave);
                }
            }

            else if (state == GameState.play)
            {
                //if all killed
                if (killedenemies == totalenemies)
                {
                    //if last wave end
                    if (currentwave == TOTALWAVES)
                    {
                        state = GameState.win;
                        setGameState("w");
                    }
                    //go to next wave
                    else
                    {
                        state = GameState.cooldown;
                        timer = COOLDOWNTIMER;
                        setGameState("c");
                        setTimer(timer);
                    }
                }
                else
                {
                    //if not all killed
                    if (spawnedenemies < totalenemies)
                    {
                        //if more enemies can be spawned
                        if (currentenemies < MAXENEMIES)
                        {
                            SpawnEnemy();
                        }
                    }
                }
            }
            else if (state == GameState.win)
            {
            }
            else if (state == GameState.lose)
            {
            }
        }
    }
Example #24
0
 public static bool Prefix(ObjectiveScript __instance, ref IEnumerator __result)
 {
     __result = EXP(__instance);
     return(false);
 }
 void OnObjectComplete(ObjectiveScript targetThatFinished)
 {
     // gameState = StateGame.win;
 }
 float DistanceToObjective(ObjectiveScript s, CharacterScript c)
 {
     return(Mathf.Abs((s.getObjectiveLocation() - c.transform.position).magnitude));
 }