public float GetCoverDefendBonusSquare(Vector3 posS) { if (cover.Count < 4) { Debug.Log("error getting cover, cover value not setup properly"); return(0); } Vector2 dir = new Vector2(posS.x - pos.x, posS.z - pos.z); float angle = Utility.VectorToAngle(dir); int coverType = 0; if (angle == 45) { coverType = Mathf.Max((int)cover[0], (int)cover[1]); } else if (angle == 135) { coverType = Mathf.Max((int)cover[1], (int)cover[2]); } else if (angle == 225) { coverType = Mathf.Max((int)cover[2], (int)cover[3]); } else if (angle == 315) { coverType = Mathf.Max((int)cover[3], (int)cover[0]); } else if (angle > 45 && angle < 135) { coverType = (int)cover[1]; } else if (angle > 135 && angle < 225) { coverType = (int)cover[2]; } else if (angle > 225 && angle < 315) { coverType = (int)cover[3]; } else if (angle >= 0 && angle < 45 || angle > 315 && angle < 360) { coverType = (int)cover[0]; } else { Debug.Log("error getting cover, angle exceed 360"); } if ((_CoverType)coverType == _CoverType.BlockHalf) { return(GameControlTB.GetCoverHalf()); } else if ((_CoverType)coverType == _CoverType.BlockFull) { return(GameControlTB.GetCoverFull()); } return(0); }
public float GetCoverDefendBonusHex(Vector3 posS) { if (cover.Count < 6) { Debug.Log("error getting cover, cover value not setup properly"); return(0); } Vector2 dir = new Vector2(posS.x - pos.x, posS.z - pos.z); float angle = Utility.VectorToAngle(dir); int coverType = 0; if (angle == 0) { coverType = Mathf.Max((int)cover[0], (int)cover[5]); } else if (angle == 60) { coverType = Mathf.Max((int)cover[0], (int)cover[1]); } else if (angle == 120) { coverType = Mathf.Max((int)cover[1], (int)cover[2]); } else if (angle == 180) { coverType = Mathf.Max((int)cover[2], (int)cover[3]); } else if (angle == 240) { coverType = Mathf.Max((int)cover[3], (int)cover[4]); } else if (angle == 300) { coverType = Mathf.Max((int)cover[4], (int)cover[5]); } else if (angle > 0 && angle < 60) { coverType = (int)cover[0]; } else if (angle > 60 && angle < 120) { coverType = (int)cover[1]; } else if (angle > 120 && angle < 180) { coverType = (int)cover[2]; } else if (angle > 180 && angle < 240) { coverType = (int)cover[3]; } else if (angle > 240 && angle < 300) { coverType = (int)cover[4]; } else if (angle > 300 && angle < 360) { coverType = (int)cover[5]; } else { Debug.Log("error getting cover, angle exceed 360"); } if ((_CoverType)coverType == _CoverType.BlockHalf) { return(GameControlTB.GetCoverHalf()); } else if ((_CoverType)coverType == _CoverType.BlockFull) { return(GameControlTB.GetCoverFull()); } return(0); }