public Pax4WayPointPathList ToWayPointPaths(int p_modValue = 1, bool p_useWayPointPath0 = false) { Pax4WayPointPathList result = new Pax4WayPointPathList(); result.FromWayPointPath(this, p_useWayPointPath0, p_modValue); return(result); }
public void AddPath(Pax4WayPointPathList p_wayPointPaths) { if (p_wayPointPaths == null || p_wayPointPaths._wayPointPath == null) { return; } if (_wayPointPath == null) { _wayPointPath = new List <Pax4WayPointPath>(); } for (int i = 0; i < p_wayPointPaths._wayPointPath.Count; i++) { _wayPointPath.Add(p_wayPointPaths._wayPointPath[i]); } }
public void PopulateWithActors(List <Pax4ObjectPhysicsPart> p_result = null, EPopulateWithActorsType p_populateWithActorsType = EPopulateWithActorsType._HETEROGENEOUS, bool p_lava = true, Pax4WayPointPathList p_wayPointPaths = null, float p_velocityFactor = 1.0f) { List <Pax4WayPointPath> wayPointPathList = null; if (p_wayPointPaths != null) { wayPointPathList = p_wayPointPaths._wayPointPath; } else { wayPointPathList = _wayPointPath; } if (wayPointPathList.Count <= 0) { return; } if (p_result != null) { p_result.Clear(); } Pax4WayPointPath wayPointPath = null; Pax4Actor actor = null; int half = wayPointPathList.Count / 2; int halfLength = half; for (int wi = 0; wi < wayPointPathList.Count; wi++) { wayPointPath = wayPointPathList[wi]; if (p_wayPointPaths == null) { halfLength = wayPointPath._wayPoint.Length / 2; } if (wayPointPath._residentCount != 0) //this allows for multipe calls to PopulateWithActors for the glorious benefit of waves after wave after wave { continue; } if (wayPointPath._locked) { if (Pax4WorldLavaAndIce._missionType == ELavaAndIceMissionType._LAVA || Pax4WorldLavaAndIce._missionType == ELavaAndIceMissionType._LAVA_AND_ICE && Pax4ActorEnemyMonsterIce._current == null) { Pax4ActorEnemyMonsterIce monsterIce = new Pax4ActorEnemyMonsterIce(_iceIndex.ToString(), null, _iceIndex); monsterIce.MoveTo(Vector3.Zero, wayPointPath._wayPoint[0]); new Pax4WayPointControllerActor(monsterIce, _difficulty, wayPointPath); monsterIce.Enable(); continue; } else if (Pax4WorldLavaAndIce._missionType == ELavaAndIceMissionType._ICE || Pax4WorldLavaAndIce._missionType == ELavaAndIceMissionType._LAVA_AND_ICE && Pax4ActorEnemyMonsterLava._current == null) { Pax4ActorEnemyMonsterLava monsterLava = new Pax4ActorEnemyMonsterLava(_lavaIndex.ToString(), null, _lavaIndex); monsterLava.MoveTo(Vector3.Zero, wayPointPath._wayPoint[0]); new Pax4WayPointControllerActor(monsterLava, _difficulty, wayPointPath); monsterLava.Enable(); continue; } } else { switch (p_populateWithActorsType) { case EPopulateWithActorsType._HOMOGENEOUS: if (wayPointPath._wayPoint.Length == 1) { if (p_lava) { actor = new Pax4ActorEnemyAmmoLava(_lavaIndex.ToString(), null, _lavaIndex); actor.SetScale(Vector3.One * 1.8f); } else { actor = new Pax4ActorEnemyAmmoIce(_iceIndex.ToString(), null, _iceIndex); actor.SetScale(Vector3.One * 1.8f); } if (wi % _powerUpRatio == 0) { actor.SetPowerUp(Pax4Actor.EActorPowerUp._DURABILITY); } actor.MoveTo(Vector3.Zero, wayPointPath._wayPoint[0]); new Pax4WayPointControllerActor(actor, Pax4WorldLavaAndIce._difficulty * 3.0f * p_velocityFactor, wayPointPath, 0); actor.Enable(); if (p_result != null) { p_result.Add(actor); } } else { for (int i = 0; i < wayPointPath._wayPoint.Length; i++) { if (i % 3 != 0) { continue; } if (p_lava) { actor = new Pax4ActorEnemyAmmoLava(_lavaIndex.ToString(), null, _lavaIndex); actor.SetScale(Vector3.One * 1.8f); } else { actor = new Pax4ActorEnemyAmmoIce(_iceIndex.ToString(), null, _iceIndex); actor.SetScale(Vector3.One * 1.8f); } actor.MoveTo(Vector3.Zero, wayPointPath._wayPoint[i]); if (i % _powerUpRatio == 0) { actor.SetPowerUp(Pax4Actor.EActorPowerUp._DURABILITY); } new Pax4WayPointControllerActor(actor, Pax4WorldLavaAndIce._difficulty * 3.0f * p_velocityFactor, wayPointPath, i); actor.Enable(); if (p_result != null) { p_result.Add(actor); } } } break; case EPopulateWithActorsType._HETEROGENEOUS: if (wayPointPath._wayPoint.Length == 1) { if (wi % 2 == 0) { actor = new Pax4ActorEnemyAmmoLava(_lavaIndex.ToString(), null, _lavaIndex); actor.SetScale(Vector3.One * 1.8f); } else { actor = new Pax4ActorEnemyAmmoIce(_iceIndex.ToString(), null, _iceIndex); actor.SetScale(Vector3.One * 1.8f); } if (wi % _powerUpRatio == 0) { actor.SetPowerUp(Pax4Actor.EActorPowerUp._DURABILITY); } actor.MoveTo(Vector3.Zero, wayPointPath._wayPoint[0]); new Pax4WayPointControllerActor(actor, Pax4WorldLavaAndIce._difficulty * 3.0f * p_velocityFactor, wayPointPath, 0); actor.Enable(); if (p_result != null) { p_result.Add(actor); } } else { for (int i = 0; i < wayPointPath._wayPoint.Length; i++) { if (i % 3 != 0) { continue; } if (i % 2 == 0) { actor = new Pax4ActorEnemyAmmoLava(_lavaIndex.ToString(), null, _lavaIndex); actor.SetScale(Vector3.One * 1.8f); } else { actor = new Pax4ActorEnemyAmmoIce(_iceIndex.ToString(), null, _iceIndex); actor.SetScale(Vector3.One * 1.8f); } actor.MoveTo(Vector3.Zero, wayPointPath._wayPoint[i]); if (i % _powerUpRatio == 0) { actor.SetPowerUp(Pax4Actor.EActorPowerUp._DURABILITY); } new Pax4WayPointControllerActor(actor, Pax4WorldLavaAndIce._difficulty * 3.0f * p_velocityFactor, wayPointPath, i); actor.Enable(); if (p_result != null) { p_result.Add(actor); } } } break; case EPopulateWithActorsType._LAYERED: if (wayPointPath._wayPoint.Length == 1) { if (wi < half) { if (p_lava) { actor = new Pax4ActorEnemyAmmoLava(_lavaIndex.ToString(), null, _lavaIndex); actor.SetScale(Vector3.One * 1.8f); } else { actor = new Pax4ActorEnemyAmmoIce(_iceIndex.ToString(), null, _iceIndex); actor.SetScale(Vector3.One * 1.8f); } } else { if (p_lava) { actor = new Pax4ActorEnemyAmmoLava(_lavaIndex.ToString(), null, _lavaIndex); actor.SetScale(Vector3.One * 1.8f); } else { actor = new Pax4ActorEnemyAmmoIce(_iceIndex.ToString(), null, _iceIndex); actor.SetScale(Vector3.One * 1.8f); } } if (wi % _powerUpRatio == 0) { actor.SetPowerUp(Pax4Actor.EActorPowerUp._DURABILITY); } actor.MoveTo(Vector3.Zero, wayPointPath._wayPoint[0]); new Pax4WayPointControllerActor(actor, Pax4WorldLavaAndIce._difficulty * 3.0f * p_velocityFactor, wayPointPath, 0); actor.Enable(); if (p_result != null) { p_result.Add(actor); } } else { for (int i = 0; i < wayPointPath._wayPoint.Length; i++) { if (i % 3 != 0) { continue; } if (i < halfLength) { if (p_lava) { actor = new Pax4ActorEnemyAmmoLava(_lavaIndex.ToString(), null, _lavaIndex); actor.SetScale(Vector3.One * 1.8f); } else { actor = new Pax4ActorEnemyAmmoIce(_iceIndex.ToString(), null, _iceIndex); actor.SetScale(Vector3.One * 1.8f); } } else { if (p_lava) { actor = new Pax4ActorEnemyAmmoLava(_lavaIndex.ToString(), null, _lavaIndex); actor.SetScale(Vector3.One * 1.8f); } else { actor = new Pax4ActorEnemyAmmoIce(_iceIndex.ToString(), null, _iceIndex); actor.SetScale(Vector3.One * 1.8f); } } actor.MoveTo(Vector3.Zero, wayPointPath._wayPoint[i]); if (i % _powerUpRatio == 0) { actor.SetPowerUp(Pax4Actor.EActorPowerUp._DURABILITY); } new Pax4WayPointControllerActor(actor, Pax4WorldLavaAndIce._difficulty * 3.0f * p_velocityFactor, wayPointPath, i); actor.Enable(); if (p_result != null) { p_result.Add(actor); } } } break; } } } }