public void setBang(float time = -1) { if (isbang && (time != 0 || BallScriptPtr.color == BALLTYPE.BOMB || BallScriptPtr.color == BALLTYPE.MOVEDOWN)) { return; } if (time == -1) { time = Time.time; } isbang = true; bangtime = time; if (BallScriptPtr.color == BALLTYPE.BOMB) { IGame.Instance.boombomb(BallScriptPtr.getPosition()); } }
public int calculateDFS(BallScriptPointer pball, List <BallScriptPointer> list, bool bang = false) { int result = 0; list.Add(pball); foreach (JointRef joint in pball.GetJoints()) { if (joint.joint == null) { continue; } if (!(list.Contains(joint.connectedBall))) { if (joint.connectedBall.color == pball.color) { result++; result += calculateDFS(joint.connectedBall, list, bang); } } } if (bang) { if (pball.getBall().isbasic) { IGame.Instance.bangbang(pball.getPosition()); } else { IGame.Instance.bangbang(pball.getPosition(), false); } pball.getBall().Killitself(); } return(result); }