示例#1
0
    public void AddCircle(FightingCircle circle)
    {
        if (!circleList.Contains(circle))
        {
            return;
        }
        circleList.Add(circle);
        int objId = circle.gameObject.GetInstanceID();

        circleDic.Add(objId, circle);
        attackRqsts.Add(objId, new List <Attack>());
    }
示例#2
0
    public void RemoveCircle(FightingCircle circle)
    {
        bool isRemoved = circleList.Remove(circle);

        if (!isRemoved)
        {
            return;
        }
        int objId = circle.gameObject.GetInstanceID();

        circleDic.Remove(objId);
        attackRqsts[objId].Clear();
        attackRqsts.Remove(objId);
    }
            public bool RegisterFightingCircle(FightingCircle circle)
            {
                int instance = circle.gameObject.GetInstanceID();

                if (circles.ContainsKey(instance))
                {
                    return(false);
                }

                circles.Add(instance, circle);
                if (isDebug)
                {
                    debug = circles.Values.ToArray();
                }

                return(true);
            }
示例#4
0
    public int GetClosestCircle(Vector3 position)
    {
        FightingCircle circle  = null;
        float          minDist = Mathf.Infinity;

        foreach (FightingCircle c in circleList)
        {
            Vector3 circlePos = c.transform.position;
            float   dist      = Vector3.Distance(position, circlePos);
            if (dist < minDist)
            {
                minDist = dist;
                circle  = c;
            }
        }
        return(circle.gameObject.GetInstanceID());
    }
示例#5
0
    //assign a fighting circle
    public void SetCircle(GameObject circleObj = null)
    {
        int id = -1;

        if (circleObj == null)
        {
            Vector3 position = transform.position;
            id = stateManager.GetClosestCircle(position);
        }
        else
        {
            FightingCircle fc = circleObj.GetComponent <FightingCircle>();
            if (fc != null)
            {
                id = fc.gameObject.GetInstanceID();
            }
        }
        circleId = id;
    }