public void MakeObjQueNode(int number = 1) { if (number < 1) { number = 1; } for (int i = 0; i < number; i++) { StageObjArr soa = RandomObjGenerator.GetInstance().RandomObjGen(); StageST.EnqueStageObjs(soa); } }
bool UpperHuddleCheck(int spawnPointNum, E_SPAWN_OBJ_TYPE changingType, StageObjArr soa) { //검증단계 if (spawnPointNum == 1) { if (soa.spawnObjType[0] == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_2 || soa.spawnObjType[0] == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_3) { return(false); } if (changingType == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_3) { return(false); } } if (spawnPointNum == 2) { if (soa.spawnObjType[1] == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_2 || soa.spawnObjType[1] == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_3) { return(false); } if (changingType == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_3 || changingType == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_2) { return(false); } } if (spawnPointNum == 0) //보정 단계 { if (changingType == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_2) { soa.spawnObjType[1] = E_SPAWN_OBJ_TYPE.NOTHING; } if (changingType == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_3) { soa.spawnObjType[1] = E_SPAWN_OBJ_TYPE.NOTHING; soa.spawnObjType[2] = E_SPAWN_OBJ_TYPE.NOTHING; } } else if (spawnPointNum == 1) { if (changingType == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_2) { soa.spawnObjType[2] = E_SPAWN_OBJ_TYPE.NOTHING; } } return(true); }
//마그넷이 뜨면 코인의 확률을 더 올려준다든지, //!!!볼은 절대 연속으로 세번 나오거나 하면 안돼!!!!! //이제 타입 배열만 뱉도록 하게. public StageObjArr RandomObjGen() { int upperFlag = 0; bool uppered = false; bool ballSpawned = false; StageObjArr soa = new StageObjArr(); for (int i = 0; i < soa.spawnObjType.Length; i++) { if (upperFlag-- > 0) { continue; } soa.spawnObjType[i] = GambleObjType(i, uppered: uppered, ballSpawned: ballSpawned); if (ballSpawned) { ballSpawned = false; } if (soa.spawnObjType[i].Equals(E_SPAWN_OBJ_TYPE.BALL)) { ballSpawned = true; } if (soa.spawnObjType[i].Equals(E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_1)) { uppered = true; } if (soa.spawnObjType[i].Equals(E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_2)) { upperFlag = 1; uppered = true; } if (soa.spawnObjType[i].Equals(E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_3)) { upperFlag = 2; uppered = true; } } return(soa); }
public static void ObjGen(E_STAGE whatStage, Transform spawnPointGroup, ref List <GameObject> objs) { if (objs == null || spawnPointGroup == null) { return; } if (StageST.objQueue.Count == 0) { if (whatStage == E_STAGE.INFINITY) { InfinityFactory.GetInstance().MakeObjQueNode(); } else { return; } } StageObjArr soa = StageST.objQueue.Dequeue(); FixedObjGenerator.FixedObjGen(spawnPointGroup, soa.spawnObjType, ref objs); }
public StageEditorST(int pos, E_WhichTurn whichTurn, StageObjArr soa) { this.pos = pos; this.whichTurn = whichTurn; this.soa = soa; }
public static void EnqueStageObjs(StageObjArr soa) { objQueue.Enqueue(soa); }
public static void EnqueStageObjs(E_SPAWN_OBJ_TYPE obj1st, E_SPAWN_OBJ_TYPE obj2nd, E_SPAWN_OBJ_TYPE obj3rd) { StageObjArr tempObjQue = new StageObjArr(obj1st, obj2nd, obj3rd); objQueue.Enqueue(tempObjQue); }