// Start is called before the first frame update
 void Start()
 {
     spawnZones      = GameObject.FindWithTag("Respawn").GetComponent <SpawnZones>();
     score           = GameObject.FindWithTag("HUD").GetComponent <Text>();
     results         = GameObject.FindWithTag("Finish").GetComponent <Canvas>();
     results.enabled = false;
     input           = GameObject.FindWithTag("Player").GetComponent <UserInput>();
 }
Exemple #2
0
    void Start()
    {
        rigidbody         = GetComponent <Rigidbody>();
        spawnZones        = FindObjectOfType <SpawnZones>();
        killZone          = spawnZones.transform;
        colorSprite.color = playerColor;
        //cubeRenderer.material.color = playerColor;

        audioSource = GetComponent <AudioSource>();
        //cubeRenderer.material.color = playerColor;
    }
        /* Useful info
         *      Main.halloween;
         *      Main.xMas;
         *      Main.moonPhase;
         *      NPC.MoonLordCountdown;
         *      NPC.saved???
         *      NPC.downed???
         *      NPC.waveNumber
         */

        public static bool SupressSpawns(NPCSpawnInfo info,
                                         SpawnFlags required  = SpawnFlags.None, SpawnZones requiredZones       = SpawnZones.None,
                                         SpawnFlags forbidden = SpawnFlags.Forbidden, SpawnZones forbiddenZones = SpawnZones.Forbidden)
        {
            forbidden      &= ~required;
            forbiddenZones &= ~requiredZones;
            ProcessSpawnInfo(info);
            return
                ((currentFlags & forbidden) != SpawnFlags.None ||
                 (currentZones & forbiddenZones) != SpawnZones.None ||
                 (currentFlags & required) != required ||
                 (currentZones & requiredZones) != requiredZones);
        }
Exemple #4
0
    // Use this for initialization
    void Start()
    {
//		players = GameObject.FindGameObjectsWithTag ("Player");
//
//		print (players [0]);
        myBody = GetComponent <Rigidbody> ();
        myCol  = GetComponent <SphereCollider> ();

        spawnZone = FindObjectOfType <SpawnZones>();

        renderer = GetComponent <Renderer>();

        offset = new Vector3(0, transform.localScale.y / 2 + 1.5f, 0);
    }
        private static void ProcessSpawnInfo(NPCSpawnInfo info)
        {
            Player player = info.player;

            if (Main.time == currentTime &&
                player.whoAmI == currentPlayer)
            {
                return;
            }
            currentTime   = Main.time;
            currentPlayer = player.whoAmI;

            MyPlayer modPlayer = player.GetModPlayer <MyPlayer>();

            currentZones = (SpawnZones)
                           ((int)player.zone1 +
                            ((int)player.zone2 << 1) +
                            ((int)player.zone3 << 2) +
                            ((int)player.zone4 << 3));
            bool notUnderground = player.position.Y < Main.worldSurface;

            currentFlags =
                (info.desertCave ? SpawnFlags.Desertcave : SpawnFlags.None) |
                (info.granite ? SpawnFlags.Granite : SpawnFlags.None) |
                (info.marble ? SpawnFlags.Marble : SpawnFlags.None) |
                (info.lihzahrd ? SpawnFlags.Lihzahrd : SpawnFlags.None) |
                (info.spiderCave ? SpawnFlags.SpiderCave : SpawnFlags.None) |
                (info.sky ? SpawnFlags.Sky : SpawnFlags.None) |
                (info.water ? SpawnFlags.Water : SpawnFlags.None) |
                (info.playerSafe ? SpawnFlags.SafeWall : SpawnFlags.None) |
                (info.playerInTown ? SpawnFlags.Town : SpawnFlags.None) |
                (info.invasion ? SpawnFlags.Invasion : SpawnFlags.None) |
                (Main.bloodMoon && !Main.dayTime && notUnderground ? SpawnFlags.Bloodmoon : SpawnFlags.None) |
                (Main.eclipse && Main.dayTime && notUnderground ? SpawnFlags.Eclipse : SpawnFlags.None) |
                (Main.pumpkinMoon && !Main.dayTime && notUnderground ? SpawnFlags.PumpkinMoon : SpawnFlags.None) |
                (Main.snowMoon && !Main.dayTime && notUnderground ? SpawnFlags.FrostMoon : SpawnFlags.None) |
                (Main.slimeRainTime != 0.0 && notUnderground ? SpawnFlags.Slimerain : SpawnFlags.None) |
                (Main.expertMode ? SpawnFlags.Expert : SpawnFlags.None) |
                (Main.hardMode ? SpawnFlags.Hardmode : SpawnFlags.None) |
                (Main.dayTime ? SpawnFlags.Daytime : SpawnFlags.None) |
                (NPC.AnyDanger() ? SpawnFlags.Danger : SpawnFlags.None) |
                (modPlayer.ZoneSpirit ? SpawnFlags.Spirit : SpawnFlags.None) |
                (modPlayer.ZoneReach ? SpawnFlags.Reach : SpawnFlags.None) |
                (MyWorld.BlueMoon && !Main.dayTime && notUnderground ? SpawnFlags.BlueMoon : SpawnFlags.None) |
                (TideWorld.TheTide && player.ZoneBeach ? SpawnFlags.Tide : SpawnFlags.None);
        }
Exemple #6
0
        public void BeginInvasion()
        {
            if (!Enabled)
            {
                return;
            }

            RemoveSpawn();

            CurrentWave = 1;
            InvasionType newType;
            City         newCity;

            do
            {
                newType = (InvasionType)Utility.Random(10);
            }while (newType == InvasionType);

            do
            {
                newCity = (City)Utility.Random(9);
            }while (newCity == CurrentInvasion);

            CurrentInvasion = newCity;
            InvasionType    = newType;
            SpawnZones      = Defs[CurrentInvasion].SpawnRecs.ToList();

            Beacon = new InvasionBeacon(this);
            Beacon.MoveToWorld(Defs[CurrentInvasion].BeaconLoc, Map);

            // Shuffle zones
            for (int i = 0; i < 8; i++)
            {
                var rec = SpawnZones[Utility.Random(SpawnZones.Count)];
                SpawnZones.Remove(rec);
                SpawnZones.Insert(0, rec);
            }

            SpawnWave();
        }
Exemple #7
0
        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);
            writer.Write(0);

            writer.Write((int)CurrentInvasion);
            writer.Write((int)InvasionType);
            writer.Write(Beacon);
            writer.Write(CurrentWave);

            writer.Write(SpawnZones == null ? 0 : SpawnZones.Count);
            SpawnZones.ForEach(rec => writer.Write(rec));

            writer.Write(Spawn == null ? 0 : Spawn.Count);
            foreach (KeyValuePair <BaseCreature, List <BaseCreature> > kvp in Spawn)
            {
                writer.Write(kvp.Key);
                writer.Write(kvp.Value.Count);
                kvp.Value.ForEach(bc => writer.Write(bc));
            }

            Timer.DelayCall(TimeSpan.FromSeconds(30), CleanupSpawn);
        }
 void SpawnEnemy()
 {
     SpawnZones.spawnEnemy(Normal);
 }