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>()); }
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); }
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()); }
//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; }