tModLoader Astral Plane

This is a VERY unique concept. I am going to keep my eyes on this. Looks awesome so far :)
The problem about me is that I have really unique ideas most of the time, but kinda suck at making them real. Surprisingly, I've managed to make the first mob (Astral Sentinel, sprite displayed in the original post) pretty much flawlessly. I have a small problem which is that I can still see his name and health by mousing over him even if I don't see him (aka don't have any lens equipped) - from what I know, there's no way to prevent this from appearing. If I'll find a way, however, I'll use it.
 
The problem about me is that I have really unique ideas most of the time, but kinda suck at making them real. Surprisingly, I've managed to make the first mob (Astral Sentinel, sprite displayed in the original post) pretty much flawlessly. I have a small problem which is that I can still see his name and health by mousing over him even if I don't see him (aka don't have any lens equipped) - from what I know, there's no way to prevent this from appearing. If I'll find a way, however, I'll use it.
You could try to temporarily hide the "Mouse Over" interface layer when the player hovers over the NPC.
 
Hmmm... elaborate please.
Here, I figured it out:
Code:
namespace SomeMod
{
    public class SomeMod: Mod
    {
        public override void ModifyInterfaceLayers(List<GameInterfaceLayer> layers)
        {
            bool hideText = false;

            //These rects are from Main.DrawMouseOver()
            Rectangle MouseRect = new Rectangle((int)Main.MouseWorld.X, (int)Main.MouseWorld.Y, 1, 1);
            for (int k = 0; k < Main.npc.Length; k++)
            {
                if (Main.npc[k].type == NPCID.Bunny)
                {
                    Rectangle NPCRect = new Rectangle((int)Main.npc[k].Bottom.X - Main.npc[k].frame.Width / 2, (int)Main.npc[k].Bottom.Y - Main.npc[k].frame.Height, Main.npc[k].frame.Width, Main.npc[k].frame.Height);
                    if (MouseRect.Intersects(NPCRect))
                    {
                        hideText = true;
                        break;
                    }
                }
            }

            if(hideText)
            {
                layers.Find(x => x.Name == "Vanilla: Mouse Over").Active = false;
            }
        }
    }
}
This will hide the hover text for every bunny. Of course you could easily change it to use a different condition. It does have side effects though. If the player is hovering over a sign for instance, when a hidden enemy walks by, the sign text will disappear.
 
Here, I figured it out:
Code:
namespace SomeMod
{
    public class SomeMod: Mod
    {
        public override void ModifyInterfaceLayers(List<GameInterfaceLayer> layers)
        {
            bool hideText = false;

            //These rects are from Main.DrawMouseOver()
            Rectangle MouseRect = new Rectangle((int)Main.MouseWorld.X, (int)Main.MouseWorld.Y, 1, 1);
            for (int k = 0; k < Main.npc.Length; k++)
            {
                if (Main.npc[k].type == NPCID.Bunny)
                {
                    Rectangle NPCRect = new Rectangle((int)Main.npc[k].Bottom.X - Main.npc[k].frame.Width / 2, (int)Main.npc[k].Bottom.Y - Main.npc[k].frame.Height, Main.npc[k].frame.Width, Main.npc[k].frame.Height);
                    if (MouseRect.Intersects(NPCRect))
                    {
                        hideText = true;
                        break;
                    }
                }
            }

            if(hideText)
            {
                layers.Find(x => x.Name == "Vanilla: Mouse Over").Active = false;
            }
        }
    }
}
This will hide the hover text for every bunny. Of course you could easily change it to use a different condition. It does have side effects though. If the player is hovering over a sign for instance, when a hidden enemy walks by, the sign text will disappear.
Hm... how close should the bunny be to the player to hide all text? Or does it not work that way?
 
Hm... how close should the bunny be to the player to hide all text? Or does it not work that way?
It hides the text if the cursor is over the bunny. I pretty much just copied the npc finding logic from the vanilla code. If there is text, it will be hidden.
 
It hides the text if the cursor is over the bunny. I pretty much just copied the npc finding logic from the vanilla code. If there is text, it will be hidden.
I don't think it's that bad of a tradeoff. Like, who will try to line up the cursor, the mob and a sign/chest/whatever else?
 
It hides the text if the cursor is over the bunny. I pretty much just copied the npc finding logic from the vanilla code. If there is text, it will be hidden.
Alright, thanks, that worked. With this implemented, it's as if the enemy isn't there at all without the lens equipped! This is perfect.
 
can you give the Dimensional Lens it's own slot
you could may be ask the person who created the wings slot mod.
I personally don't want to. Other mods add more slots already, I don't want to have less compatibility with them.
This is also a gameplay choice - "do you want to stay on the Vanilla progression or delve into the dark depths of the Astral Progression instead?" Sacrifices are common in most things.
 
could you add a multi-dimensional black dog monster please?
the black dog could go between terrarian and astral planes.
I will have multi-dimensional interactions in some enemies, no worries. That also applies to bosses. (when I'll actually start making them, eek)

Don't know about a dog-like monster, might make one. Depends on how it'll come out. But the dimension swapping stuff will be a thing for sure, no worries.
 
This seems pretty cool. Like, really cool, actually. Might be nice if as the player dives into the astral progression, they get some new options for how to interact with the unseen world, though. Things like placeable tiles that reveal things in a certain radius, a helmet/armor set that gives the ability to see, and/or a pet that will reveal things...but not everything. Another cool idea might be if there was more than one "other dimension", with different lenses to see into each. That would also open up the possibility of multidimensional enemies (bosses) and items that have different looks and effects depending on the lens used.

Eh...it's your idea, I'm just rambling.
 
This seems pretty cool. Like, really cool, actually. Might be nice if as the player dives into the astral progression, they get some new options for how to interact with the unseen world, though. Things like placeable tiles that reveal things in a certain radius, a helmet/armor set that gives the ability to see, and/or a pet that will reveal things...but not everything. Another cool idea might be if there was more than one "other dimension", with different lenses to see into each. That would also open up the possibility of multidimensional enemies (bosses) and items that have different looks and effects depending on the lens used.

Eh...it's your idea, I'm just rambling.
Hehe, I like the way you think. Similarly to me, actually. There will be placeables that will reveal nearby creatures, as well as an early-Hardmode potion that gives the ability to see into the hidden dimension for 4 minutes. Dunno about a set, we'll see.
The "will reveal things but not everything" part is similar to my future plans of splitting the Dimensional Lens - you'll have to upgrade it as you progress to see more and more things.
Don't know about the "other dimension" idea - we already have one sub-dimension and having a second one will just double the amount of work I'll have to put in. Not that I'm lazy or anything (and yes, I'm very lazy - that only applies to things I'm not interested in, though) but it's just not the core concept I have in mind. I plan to expand upon the Astral Plane. Only one for now, ey?
As for dimension-swapping and lens requirements, those will be in the final version of the mod for sure. I planned to have the bosses I'll make have some attacks/stages that are only visible inside the Astral Plane, while remaining completely invisible to "normies". Yet again, this'll be a pain to code, but worth it I guess.
 
Back
Top Bottom