void InstantiateMonster() { monsterGroupFighter = new GroupMonsterFighter(); GameObject prefab = prefabMonster; Fighter fighter; CreatureType creatureType = CreatureType.Monster; GameObject monstersPositionParent = GameObject.FindGameObjectWithTag("MonstersPosition"); List <Transform> monstersPosition = new List <Transform>(); foreach (Transform child in monstersPositionParent.transform) { monstersPosition.Add(child); } for (int i = 0; i < nbCreaturePerGroup && i < caravane.lFighters.Count; i++) { fighter = caravane.lFighters[i]; fighter.bTryToescape = false; GameObject g = Instantiate(prefab, monstersPosition[i].position, Quaternion.Euler(0, 90, 0)) as GameObject; GameObject mo; GameObject model = creaturePrefabManager.GetMonster(fighter.nID); mo = Instantiate(model, monstersPosition[i].position, Quaternion.Euler(0, 270, 0)) as GameObject; mo.transform.parent = g.transform; mo.transform.localPosition = Vector3.zero; mo.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f); mo.transform.GetChild(0).gameObject.AddComponent <BoxCollider>(); g.GetComponent <FighterUI>().fighter = fighter; monsterGroupFighter.lFighters.Add(fighter); g.transform.parent = GameObject.FindGameObjectWithTag("Monsters").transform; g.name = fighter.sName; MouseOverCreature mouseOver = mo.transform.GetChild(0).gameObject.AddComponent <MouseOverCreature>(); mouseOver.fighterUI = g.GetComponent <FighterUI>(); g.GetComponent <FighterUI>().fighterRenderer = mouseOver.gameObject.GetComponent <Renderer>(); } if (isBossCombat) { monstersPosition = new List <Transform>(); foreach (Transform child in monstersPositionParent.transform) { monstersPosition.Add(child); } humanGroupFighter = new GroupEd(); int idModel = 40; GameObject model = creaturePrefabManager.GetSpecial(idModel); //Human humain = GameObject.FindGameObjectWithTag("CreaturesData").GetComponent<CreaturesData>().GetFighterOfID<Human>(creatureType, idModel); Monster monster = new Monster(); monster.nID = idModel; monster.sName = "PiratePlant"; monster.isBoss = true; monster.nPower = GameObject.FindGameObjectWithTag("CreaturesData").GetComponent <CreaturesData>().defaultMonster.nPower; monster.nHealthMax = GameObject.FindGameObjectWithTag("CreaturesData").GetComponent <CreaturesData>().defaultMonster.nHealthMax; monster.nCurrentHealth = monster.nHealthMax; GameObject g = Instantiate(prefab, monstersPosition[4].position, Quaternion.Euler(0, 90, 0)) as GameObject; GameObject mo = Instantiate(model, monstersPosition[4].position, Quaternion.Euler(0, 90, 0)) as GameObject; mo.transform.parent = g.transform; mo.transform.localPosition = Vector3.zero; mo.transform.localScale = new Vector3(-0.3f, 0.3f, 0.3f); mo.transform.GetChild(0).gameObject.AddComponent <BoxCollider>(); MouseOverCreature mouseOver = mo.transform.GetChild(0).gameObject.AddComponent <MouseOverCreature>(); mouseOver.fighterUI = g.GetComponent <FighterUI>(); g.GetComponent <FighterUI>().fighter = monster; monsterGroupFighter.lFighters.Add(monster); g.transform.parent = GameObject.FindGameObjectWithTag("Monsters").transform; g.name = monster.sName; g.GetComponent <FighterUI>().fighterRenderer = mouseOver.gameObject.GetComponent <Renderer>(); } }
void InstantiateHuman() { GameObject prefab = prefabHuman; Fighter fighter; CreatureType creatureType = CreatureType.Human; GameObject humansPositionParent = GameObject.FindGameObjectWithTag("HumansPosition"); List <Transform> humansPosition = new List <Transform>(); foreach (Transform child in humansPositionParent.transform) { humansPosition.Add(child); } if (!bSpecialFight) { humanGroupFighter = new GroupHumanFighter(); if (protoScript == null && !isBossCombat) { currentNbHuman = Random.Range(2, nbCreaturePerGroup + 1); //currentNbHuman = 2; } for (int i = 0; i < currentNbHuman; i++) { int idModel = creaturePrefabManager.GetRandomHumanID(); GameObject model = creaturePrefabManager.GetHuman(idModel); Human humain = GameObject.FindGameObjectWithTag("CreaturesData").GetComponent <CreaturesData>().GetFighterOfID <Human>(creatureType, idModel); humain.sexe = enumSex.None; enumSex sexCurrent = creaturePrefabManager.GetSexPrefabId(model, idModel); humain.sexe = sexCurrent; ModelHumainUI modelUI = model.GetComponent <ModelHumainUI>(); if (modelUI != null) { modelUI.RandomCheveux(); } if (humain == null) { humain = new Human(); humain.CopyHuman(defaultHuman); humain.nID = idModel; //humain.sName = model.name; } GameObject g = Instantiate(prefab, humansPosition[i].position, Quaternion.Euler(0, 90, 0)) as GameObject; GameObject mo = Instantiate(model, humansPosition[i].position, Quaternion.Euler(0, 90, 0)) as GameObject; mo.transform.parent = g.transform; mo.transform.localPosition = Vector3.zero; mo.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f); mo.transform.GetChild(0).gameObject.AddComponent <BoxCollider>(); MouseOverCreature mouseOver = mo.transform.GetChild(0).gameObject.AddComponent <MouseOverCreature>(); mouseOver.fighterUI = g.GetComponent <FighterUI>(); g.GetComponent <FighterUI>().fighter = humain; humanGroupFighter.lFighters.Add(humain); g.transform.parent = GameObject.FindGameObjectWithTag("Humans").transform; g.name = humain.sName; g.GetComponent <FighterUI>().fighterRenderer = mouseOver.gameObject.GetComponent <Renderer>(); } } else { if (specialType == SpecialType.Ed) { humanGroupFighter = new GroupEd(); int idModel = 30; GameObject model = creaturePrefabManager.GetSpecial(idModel); //Human humain = GameObject.FindGameObjectWithTag("CreaturesData").GetComponent<CreaturesData>().GetFighterOfID<Human>(creatureType, idModel); Human humain = new Human(); humain.CopyHuman(defaultHuman); humain.nID = idModel; humain.sName = "Ed"; humain.nPower = GameObject.FindGameObjectWithTag("CreaturesData").GetComponent <CreaturesData>().defaultHuman.nPower; GameObject g = Instantiate(prefab, humansPosition[0].position, Quaternion.Euler(0, 90, 0)) as GameObject; GameObject mo = Instantiate(model, humansPosition[0].position, Quaternion.Euler(0, 90, 0)) as GameObject; mo.transform.parent = g.transform; mo.transform.localPosition = Vector3.zero; mo.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f); mo.transform.GetChild(0).gameObject.AddComponent <BoxCollider>(); MouseOverCreature mouseOver = mo.transform.GetChild(0).gameObject.AddComponent <MouseOverCreature>(); mouseOver.fighterUI = g.GetComponent <FighterUI>(); g.GetComponent <FighterUI>().fighter = humain; humanGroupFighter.lFighters.Add(humain); g.transform.parent = GameObject.FindGameObjectWithTag("Humans").transform; g.name = humain.sName; g.GetComponent <FighterUI>().fighterRenderer = mouseOver.gameObject.GetComponent <Renderer>(); } if (specialType == SpecialType.Bard) { humanGroupFighter = new GroupBard(); int idModel = 31; GameObject model = creaturePrefabManager.GetSpecial(idModel); //Human humain = GameObject.FindGameObjectWithTag("CreaturesData").GetComponent<CreaturesData>().GetFighterOfID<Human>(creatureType, idModel); Human humain = new Human(); humain.CopyHuman(defaultHuman); humain.nID = idModel; humain.sName = "Bard"; GameObject g = Instantiate(prefab, humansPosition[0].position, Quaternion.Euler(0, 90, 0)) as GameObject; GameObject mo = Instantiate(model, humansPosition[0].position, Quaternion.Euler(0, 90, 0)) as GameObject; mo.transform.parent = g.transform; mo.transform.localPosition = Vector3.zero; mo.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f); mo.transform.GetChild(0).gameObject.AddComponent <BoxCollider>(); MouseOverCreature mouseOver = mo.transform.GetChild(0).gameObject.AddComponent <MouseOverCreature>(); mouseOver.fighterUI = g.GetComponent <FighterUI>(); g.GetComponent <FighterUI>().fighter = humain; humanGroupFighter.lFighters.Add(humain); g.transform.parent = GameObject.FindGameObjectWithTag("Humans").transform; g.name = humain.sName; g.GetComponent <FighterUI>().fighterRenderer = mouseOver.gameObject.GetComponent <Renderer>(); } if (specialType == SpecialType.Slip) { humanGroupFighter = new GroupSlip(); int idModel = 32; GameObject model = creaturePrefabManager.GetSpecial(idModel); //Human humain = GameObject.FindGameObjectWithTag("CreaturesData").GetComponent<CreaturesData>().GetFighterOfID<Human>(creatureType, idModel); Human humain = new Human(); humain.CopyHuman(defaultHuman); humain.nPower = 0; humain.nID = idModel; humain.sName = "MecEnSlip"; GameObject g = Instantiate(prefab, humansPosition[0].position, Quaternion.Euler(0, 90, 0)) as GameObject; GameObject mo = Instantiate(model, humansPosition[0].position, Quaternion.Euler(0, 90, 0)) as GameObject; mo.transform.parent = g.transform; mo.transform.localPosition = Vector3.zero; mo.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f); mo.transform.GetChild(0).gameObject.AddComponent <BoxCollider>(); MouseOverCreature mouseOver = mo.transform.GetChild(0).gameObject.AddComponent <MouseOverCreature>(); mouseOver.fighterUI = g.GetComponent <FighterUI>(); g.GetComponent <FighterUI>().fighter = humain; humanGroupFighter.lFighters.Add(humain); g.transform.parent = GameObject.FindGameObjectWithTag("Humans").transform; g.name = humain.sName; g.GetComponent <FighterUI>().fighterRenderer = mouseOver.gameObject.GetComponent <Renderer>(); } } }
void CheckDeadFighters() { foreach (Order order in combatOrder) { if (order.fighter.IsDead()) { AkSoundEngine.SetSwitch("Tension", "T4", gameObject); combatOrder.Remove(order); } } for (int i = 0; i < combatOrder.Count; i++) { if (combatOrder[i].fighter == currentFighter && combatOrder[i].nInitiative == currentInitiative) { currentFighterIndex = i; break; } } if (monsterGroupFighter.lFighters.Count < 4 && !monsterGroupFighter.SomeTryToRun()) { if (caravane.lFighters.Count >= 4) { Fighter lastDeadFighter = monsterGroupFighter.ReplacDeadFighter(); GameObject prefab = prefabMonster; CreatureType creatureType = CreatureType.Monster; Fighter fighter = caravane.lFighters[3]; fighter.bTryToescape = false; GameObject g = Instantiate(prefab, fighterMouvementManager.SpawnPosition, Quaternion.Euler(0, 90, 0)) as GameObject; GameObject mo; GameObject model = creaturePrefabManager.GetMonster(fighter.nID); mo = Instantiate(model, Vector3.zero, Quaternion.Euler(0, 270, 0)) as GameObject; mo.transform.parent = g.transform; mo.transform.localPosition = Vector3.zero; mo.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f); mo.transform.GetChild(0).gameObject.AddComponent <BoxCollider>(); g.GetComponent <FighterUI>().fighter = fighter; monsterGroupFighter.lFighters.Add(fighter); g.transform.parent = GameObject.FindGameObjectWithTag("Monsters").transform; g.name = fighter.sName; MouseOverCreature mouseOver = mo.transform.GetChild(0).gameObject.AddComponent <MouseOverCreature>(); mouseOver.fighterUI = g.GetComponent <FighterUI>(); g.GetComponent <FighterUI>().fighterRenderer = mouseOver.gameObject.GetComponent <Renderer>(); fighterMouvementManager.lastDeadFighterPosition = lastDeadFighter.currentUI.gameObject.transform.position; fighterMouvementManager.SpawnMonster(g); fighterMouvementManager.lastDeadFighterPosition = lastDeadFighter.currentUI.transform.position; g.transform.position = fighterMouvementManager.spawn.position; Order order = new Order(fighter, 6); combatOrder.Add(order); } } }