private static void SendNootArmy()
        {
            Game game = new Game();
            //Thank you Lee.
            AbstractRoom adjacentRoom;
            int          numOfNoodles = 20;

            Debug.Log("RELEASE THE NOOTS!");
            for (int i = 0; i < game.player.room.exitAndDenIndex.Length; i++)
            {
                if (game.player.room.WhichRoomDoesThisExitLeadTo(game.player.room.exitAndDenIndex[i]) != null)
                {
                    adjacentRoom = game.player.room.WhichRoomDoesThisExitLeadTo(game.player.room.exitAndDenIndex[i]);
                    WorldCoordinate node = adjacentRoom.RandomNodeInRoom();
                    if (adjacentRoom.realizedRoom == null)
                    {
                        adjacentRoom.RealizeRoom(game.player.room.world, game.player.room.world.game);
                    }
                    for (int c = 0; c < numOfNoodles; c++)
                    {
                        Debug.Log("Spawned a Noodle Fly");
                        AbstractCreature abstractNoodle = new AbstractCreature(game.player.room.world, StaticWorld.GetCreatureTemplate(CreatureTemplate.Type.BigNeedleWorm), null, node, adjacentRoom.world.game.GetNewID());
                        adjacentRoom.AddEntity(abstractNoodle);
                        abstractNoodle.RealizeInRoom();
                        abstractNoodle.state.socialMemory.GetOrInitiateRelationship(game.player.abstractCreature.ID).like     = -50f;
                        abstractNoodle.state.socialMemory.GetOrInitiateRelationship(game.player.abstractCreature.ID).tempLike = -50f;
                        abstractNoodle.abstractAI.InternalSetDestination(game.player.coord);
                    }
                    break;
                }
            }
        }
Exemple #2
0
        public void ReadPlayer(BinaryReader br, CSteamID sentPlayer)
        {
            if (!MonklandSteamManager.WorldManager.gameRunning)
            {
                return;
            }
            string roomName = br.ReadString();//Read Room Name

            if (!MonklandSteamManager.WorldManager.commonRooms.ContainsKey(roomName))
            {
                return;
            }
            AbstractRoom abstractRoom = patch_RainWorldGame.mainGame.world.GetAbstractRoom(roomName);

            if (abstractRoom == null || abstractRoom.realizedRoom == null)
            {
                return;
            }
            int             dist     = br.ReadInt32();                      // Read Disinguisher
            WorldCoordinate startPos = WorldCoordinateHandler.Read(ref br); // Read World Coordinate

            foreach (AbstractCreature cr in abstractRoom.creatures)
            {
                if (((cr as AbstractPhysicalObject) as patch_AbstractPhysicalObject).dist == dist && cr.realizedCreature != null)
                {
                    cr.realizedCreature = PlayerHandler.Read((cr.realizedCreature as Player), ref br);// Read Player
                    cr.pos.room         = abstractRoom.index;
                    return;
                }
            }
            startPos.room         = abstractRoom.index;
            startPos.abstractNode = -1;
            AbstractCreature abstractCreature = new AbstractCreature(patch_RainWorldGame.mainGame.world, StaticWorld.GetCreatureTemplate("Slugcat"), null, startPos, new EntityID(-1, 1));

            abstractCreature.state = new PlayerState(abstractCreature, 1, 0, false);
            ((abstractCreature as AbstractPhysicalObject) as patch_AbstractPhysicalObject).dist  = dist;
            ((abstractCreature as AbstractPhysicalObject) as patch_AbstractPhysicalObject).owner = sentPlayer.m_SteamID;
            abstractCreature.pos.room = abstractRoom.index;
            patch_RainWorldGame.mainGame.world.GetAbstractRoom(abstractCreature.pos.room).AddEntity(abstractCreature);
            abstractCreature.RealizeInRoom();
            abstractCreature.realizedCreature = PlayerHandler.Read((abstractCreature.realizedCreature as Player), ref br);// Read Player
            abstractCreature.pos.room         = abstractRoom.index;
        }