ID:152390
 
I am developing a tactical rpg game, and I have a question.

When it's your turn you can click on your unit and it brings up a menu with "ATTACK, MOVE, DEFEND, ETC"(This is graphical, currently hud based). But I was wondering if there was a good way to not have it on the hud, without anyone else seeing it?

I looked into /image, but it said that it was only purely graphical, and took all properties of the atom it was assigned to.
You could put the menu directly on the owner's screen:
obj/screen_menu_item_1
screen_loc = "3,3" // an arbitrary place
// set its properties here
mob/soldier
var/client/owner
Click()
if(usr.client == src.owner)
var/obj/screen_menu_item_1/A = new()
usr.client.screen += A
// this creates one menu option.

You may have to set its screen_loc value each time you open a new menu, unless you just want it to appear in the corner of the player's screen, or at an arbitrary position.

And, of course, you'd delete the entire menu when an option is clicked.


--Vito

In response to Vito Stolidus
Already did that.
I stated I wasn't trying to use it as a HUD.
In response to Konamix
Ooh, sorry. Missed that.

Never mind.

Leave out one sentence...


--Vito
In response to Vito Stolidus
Thanks though.
In response to Konamix
I'm not very good at this, but...

You could just make the commands invisible objects, and when your turn passes by and when you click on your unit, it would allow you to see such invisible objects and then disable your visibility of invisible items after the selection has been made.

I think it's useful because it only loads 1 set of objects for all clients since they are drawn on the map.
In response to Konamix
Konamix wrote:
Already did that.
I stated I wasn't trying to use it as a HUD.

Use statpanels that change.
Konamix wrote:
But I was wondering if there was a good way to not have it on the hud, without anyone else seeing it?

Why?

It sounds like screen objects are the right tool for this job.
In response to Crispy
Isn't there a right-click menu? Couldn't you use that?
In response to Yakuto
If he doesn't want to use the HUD for it, then he can just use a switch input... If you don't know how they work, then it's something like this.

switch(input(src,"What would you like to do?","Menu")in list("Attack","Defend","Move"))
if("Attack")
...
if("Defend")
...
if("Move")
...


That'd bring up a little pop-up box with the choices in it.

-Exophus
In response to Exophus
Short Response: Ack.

Long Response: Double ack.

Explanation: I notice that you're missing a cancel button. This alone could become a pain for many players, especially when a simple cancel button could easily be handled in that switch statement.
In response to Audeuro
It's not like I programmed the entire thing for him. It's not a final product, I just gave him a basic example of how to use it, the mechanics of it are up to him. You can tell by the ..., so, my good sir, triple ack at you.