Esempio n. 1
0
 public void tune_out_ai(AI_generic listener)
 {
     if (!tune_in_ais.Contains(listener))
     {
         return;
     }
     listener.tuned_in = false;
     tune_in_ais.Remove(listener);
 }
Esempio n. 2
0
    public void tune_in_ai(AI_generic listener)
    {
        if (tune_in_ais.Contains(listener))
        {
            return;
        }

        listener.tuned_in = true;
        tune_in_ais.Add(listener);
    }
Esempio n. 3
0
    public void assign_random_weapon(GameObject npc)
    {
        int        index = 0;
        AI_generic _npc  = npc.GetComponent <AI_generic>();

        _npc.ammo_drop_count = 0;
        if (equip_template != null && equip_template.Count > 0)
        {
            //Randomize weapon type
            int seed_equip = Random.Range(0, 100);
            for (int i = 0; i < equip_template.Count; i++)
            {
                if (seed_equip > equip_template[i].Value)
                {
                    seed_equip -= equip_template[i].Value;
                }
                else
                {
                    index = i;
                    break;
                }
            }

            /*
             * //Spawn weapon
             * Transform weapon_bone = npc.GetComponent<Body_generic>().weapon_bone.transform;
             * GameObject equip = Instantiate(equip_template[index].Key, weapon_bone.position, weapon_bone.rotation);
             * NetworkServer.Spawn(equip);
             * Gun_generic gun = equip.GetComponent<Gun_generic>();
             * //Give ammo type
             * if (gun.ammo_template != null)
             * {
             *  int seed = Random.Range(0, 100);
             *  if (seed < CONSTANTS.NPC_DROP_CHANCE * 100)
             *  {
             *      _npc.ammo_drop_count = gun.ammo_template.GetComponent<Ammo_generic>().amount * 2;
             *
             *  }
             *  _npc.ammo_drop_template = gun.ammo_template;
             * }
             * //Npc pick up
             * _npc.Pickup_item(equip);
             */
            //_npc.request_weapon(equip_template[index].Key);
        }
    }
Esempio n. 4
0
    string get_weapon_name(GameObject subject)
    {
        if (subject.GetComponent <Body_generic>().isPlayer)
        {
            Player_controller player = subject.GetComponent <Player_controller>();
            if (player.equiped_item == null)
            {
                return("nothing");
            }
            return(subject.GetComponent <Player_controller>().equiped_item.name);
        }
        AI_generic ai = subject.GetComponent <AI_generic>();

        if (ai.equiped_item == null)
        {
            return("nothing");
        }
        return(subject.GetComponent <AI_generic>().equiped_item.name);
    }
Esempio n. 5
0
    void Update()
    {
        int process_count = process_thredshold;

        while (pathRequestQueue.Count > 0 && process_count > 0)//something missing here?
        {
            process_count -= 1;
            for (int i = 0; i < area_dict.Count; i++)
            {
                area_dict[i].initialize();
            }
            GameObject ai_obj = pathRequestQueue.Dequeue();
            if (ai_obj != null)
            {
                AI_generic ai      = ai_obj.GetComponent <AI_generic>();
                GameObject destine = null;
                if (ai_obj != null)
                {
                    //addition code here


                    destine = ai.navtoobj;
                    float   target_size      = -1;
                    Vector2 destine_location = ai.navtopos;
                    if (destine != null && destine.GetComponent <Body_generic>() != null)//if target doesnt have size (preset locations etc.)
                    {
                        target_size = destine.GetComponent <Body_generic>().size;
                    }



                    //Navigate
                    if (destine_location != CONSTANTS.VEC_NULL)
                    {
                        ai.path = Astar_algorithm(ai_obj.transform.position, destine_location, -1, -1);
                        //Debug.DrawLine(ai.transform.position, ai.path[0].position, Color.white, 10);
                        //Debug.DrawLine(ai.path[0].position, destine_location, Color.white, 10);
                        ai.path_index = 0;
                    }
                }
            }
        }
    }