Working on a menu system for picking abilities, this is the rough draft of what the top level of the menu will look like.

I'm definitely going to need to move to a higher quality though.

I'm also unsure if I should mirror the "open" animation when closing the menu, or if I should just keep it as it is now where it gets the menu out of the way ASAP.
In response to Bravo1
Keep it how it is. I didn't even notice they don't stack back up until you said something and in general quicker UI interaction is better.
In response to Bravo1
I agree with Unwanted, but have you tried animating the cards to open from the right side and swing into position, then to close towards the left side swinging?
In response to Kumorii
This just looks better and better everytime you post something.
In response to Bravo1
Bravo1 wrote:

Nice michael jackson + twisted fate.
In response to Maximus_Alex2003
Maximus_Alex2003 wrote:
I agree with Unwanted, but have you tried animating the cards to open from the right side and swing into position, then to close towards the left side swinging?

That sounds interesting, I'll try that out. Also, happy page 300 everyone!
In response to Bravo1
That's a really cool effect, makes me wanna try it.
In response to Ter13
Ter13 wrote:

I want play this game, Ter13.
In response to YURIRAMOS
me 3
More of what I've been working on with my HUD.
Needs more tweaking but so far works pretty good for what I need and it's all modular and fairly customizable. Gonna work on Menu and Resize next.
445 lines of code slowly being shortened and optimized.
(Large GIF. Not gonna embed it here for bandwidth purposes. 508.74 KB @ 1,422px × 938px)

http://i.imgur.com/GcNbOWE.gif
In response to Maximus_Alex2003
Maximus_Alex2003 wrote:
More of what I've been working on with my HUD.
Needs more tweaking but so far works pretty good for what I need and it's all modular and fairly customizable. Gonna work on Menu and Resize next.
445 lines of code slowly being shortened and optimized.
(Large GIF. Not gonna embed it here for bandwidth purposes. 508.74 KB @ 1,422px × 938px)

http://i.imgur.com/GcNbOWE.gifv

That's great, please, turn it into a useful lib
In response to YURIRAMOS
YURIRAMOS wrote:
That's great, please, turn it into a useful lib


I fixed the link to the gif so it's the direct link now instead of imgur post. Honestly, the only reason why I'm making it is because of what Kaiochao posted; this in specific: http://i.imgur.com/jy3nM45.gif

Otherwise I could slim it all down just to fit my needs.
Probably won't be available as a lib until, I obviously finish it, but also until I do some serious performance testing with it because it's all screen objects. The downfall is it's not shared objects with other clients because of it's customization so I'd love to see how it handles with 20+ people constantly changing it, moving it, etc.

This alone is just how a box is created:
        generateBox(client/PLAYER, P_WIDTH, P_HEIGHT, TYPE, OPACITY, START_X,START_X_P, START_Y,START_Y_P, list/BUTTONS)
src.alpha = OPACITY
src.WIDTH_P = P_WIDTH
src.HEIGHT_P = P_HEIGHT
var/Y_NORTH = round(START_X + (P_HEIGHT / world.icon_size))
var/X_EAST = round(START_Y + (P_WIDTH / world.icon_size))
var/HUD/border/frame/corner/NORTH_EAST = new /HUD/border/frame/corner(src, PLAYER, NORTHEAST, START_X,START_X_P, START_Y,START_Y_P, X_EAST,START_X_P, Y_NORTH,START_Y_P, OPACITY)
var/HUD/border/frame/corner/NORTH_WEST = new /HUD/border/frame/corner(src, PLAYER, NORTHWEST, START_X,START_X_P, START_Y,START_Y_P, START_X,START_X_P, Y_NORTH,START_Y_P, OPACITY)
var/HUD/border/frame/corner/SOUTH_EAST = new /HUD/border/frame/corner(src, PLAYER, SOUTHEAST, START_X,START_X_P, START_Y,START_Y_P, X_EAST,START_X_P, START_Y,START_Y_P, OPACITY)
var/HUD/border/frame/corner/SOUTH_WEST = new /HUD/border/frame/corner(src, PLAYER, SOUTHWEST, START_X,START_X_P, START_Y,START_Y_P, START_X,START_X_P, START_Y,START_Y_P, OPACITY)
new /HUD/border/frame/background(src, PLAYER, SOUTH_WEST,NORTH_EAST, SOUTH_WEST.screen_loc,NORTH_EAST.screen_loc, OPACITY)
/*NORTH*/new /HUD/border/frame/side(src, PLAYER, NORTH_WEST,NORTH_EAST, NORTH_WEST.screen_loc,NORTH_EAST.screen_loc, OPACITY)
/*SOUTH*/new /HUD/border/frame/side(src, PLAYER, SOUTH_WEST,SOUTH_EAST, SOUTH_WEST.screen_loc,SOUTH_EAST.screen_loc, OPACITY)
/*EAST*/new /HUD/border/frame/side(src, PLAYER, SOUTH_EAST,NORTH_EAST, SOUTH_EAST.screen_loc,NORTH_EAST.screen_loc, OPACITY)
/*WEST*/new /HUD/border/frame/side(src, PLAYER, SOUTH_WEST,NORTH_WEST, SOUTH_WEST.screen_loc,NORTH_WEST.screen_loc, OPACITY)
var/buttons = 1
if(BUTTONS["RESIZE"])
src.HUD_OBJECTS["RESIZE"] = new /HUD/options/resize(src, PLAYER, NORTH_EAST.screen_loc, buttons-1,0, OPACITY)
if(BUTTONS["MOVE"])
src.HUD_OBJECTS["MOVE"] = new /HUD/options/move(src, PLAYER, NORTH_EAST.screen_loc, buttons,0, OPACITY)
buttons += 1
if(BUTTONS["MENU"])
src.HUD_OBJECTS["MENU"] = new /HUD/options/menu(src, PLAYER, NORTH_EAST.screen_loc, buttons,0, OPACITY)
buttons += 1
if(BUTTONS["MINIMIZE"])
src.HUD_OBJECTS["MINIMIZE"] = new /HUD/options/mini_maxi(src, PLAYER, NORTH_EAST.screen_loc, buttons,0, OPACITY)
switch(TYPE)
if("CHAT")
var/pixel_position = FONT_SIZE
for(var/position = 1, position <= src.CHAT_LINES.len, position++)
var/HUD/text/new_line = new(src, PLAYER, START_X,START_X_P+round((FONT_SIZE/2)), START_Y,pixel_position, position)
new_line.maptext_width = P_WIDTH
new_line.maptext_height = FONT_SIZE
new_line.alpha = 500 / position
pixel_position += FONT_SIZE
src.CHAT_LINES[position] = new_line

That's not including the fact that every HUD object has it's own New() that does the actual generation stuff.

This is the snippet for moving the boxes:
                moveHUD(parameters)
var/HUD/HUD_CONTROLLER/CONTROLLER = src.controller
var/HUD/options/mini_maxi/MINI_MAXI = CONTROLLER.HUD_OBJECTS["MINIMIZE"]
var/RE_MINIMIZE
if(MINI_MAXI && MINI_MAXI.name == "maximize")
RE_MINIMIZE = TRUE
MINI_MAXI.maximizeHUD()
var/list/NEW_LOC = CONTROLLER.SCREEN_LOC_to_LIST(parameters)
var/list/CURRENT_LOC = CONTROLLER.SCREEN_LOC_to_LIST(src.screen_loc)
src.screen_loc = "[NEW_LOC["x"]]:[NEW_LOC["xp"]],[NEW_LOC["y"]]:[NEW_LOC["yp"]]"
src.ORIGINAL_SCREEN_LOC = src.screen_loc
var/DIFFERENCE_x = NEW_LOC["x"] - CURRENT_LOC["x"]
var/DIFFERENCE_xp = NEW_LOC["xp"] - CURRENT_LOC["xp"]
var/DIFFERENCE_y = NEW_LOC["y"] - CURRENT_LOC["y"]
var/DIFFERENCE_yp = NEW_LOC["yp"] - CURRENT_LOC["yp"]
var/HUD/border/frame/corner/CORNER = CONTROLLER.HUD_OBJECTS_FRAME["SOUTHWEST"]
var/CORNER_LOC = CONTROLLER.SCREEN_LOC_to_LIST(CORNER.screen_loc)
CORNER.screen_loc = "[CORNER_LOC["x"] + DIFFERENCE_x]:[NEW_LOC["xp"]],[CORNER_LOC["y"] + DIFFERENCE_y]:[NEW_LOC["yp"]]"
CORNER.ORIGINAL_SCREEN_LOC = CORNER.screen_loc
CORNER = CONTROLLER.HUD_OBJECTS_FRAME["SOUTHEAST"]
CORNER_LOC = CONTROLLER.SCREEN_LOC_to_LIST(CORNER.screen_loc)
CORNER.screen_loc = "[CORNER_LOC["x"] + DIFFERENCE_x]:[NEW_LOC["xp"]],[CORNER_LOC["y"] + DIFFERENCE_y]:[NEW_LOC["yp"]]"
CORNER.ORIGINAL_SCREEN_LOC = CORNER.screen_loc
CORNER = CONTROLLER.HUD_OBJECTS_FRAME["NORTHWEST"]
CORNER_LOC = CONTROLLER.SCREEN_LOC_to_LIST(CORNER.screen_loc)
CORNER.screen_loc = "[CORNER_LOC["x"] + DIFFERENCE_x]:[NEW_LOC["xp"]],[CORNER_LOC["y"] + DIFFERENCE_y]:[NEW_LOC["yp"]]"
CORNER.ORIGINAL_SCREEN_LOC = CORNER.screen_loc
CORNER = CONTROLLER.HUD_OBJECTS_FRAME["NORTHEAST"]
CORNER_LOC = CONTROLLER.SCREEN_LOC_to_LIST(CORNER.screen_loc)
CORNER.screen_loc = "[CORNER_LOC["x"] + DIFFERENCE_x]:[NEW_LOC["xp"]],[CORNER_LOC["y"] + DIFFERENCE_y]:[NEW_LOC["yp"]]"
CORNER.ORIGINAL_SCREEN_LOC = CORNER.screen_loc
var/HUD/border/frame/corner/SOUTHWEST = CONTROLLER.HUD_OBJECTS_FRAME["SOUTHWEST"]
var/list/SW_LOC = CONTROLLER.SCREEN_LOC_to_LIST(SOUTHWEST.screen_loc)
var/HUD/border/frame/corner/SOUTHEAST = CONTROLLER.HUD_OBJECTS_FRAME["SOUTHEAST"]
var/list/SE_LOC = CONTROLLER.SCREEN_LOC_to_LIST(SOUTHEAST.screen_loc)
var/HUD/border/frame/corner/NORTHWEST = CONTROLLER.HUD_OBJECTS_FRAME["NORTHWEST"]
var/list/NW_LOC = CONTROLLER.SCREEN_LOC_to_LIST(NORTHWEST.screen_loc)
var/HUD/border/frame/corner/NORTHEAST = CONTROLLER.HUD_OBJECTS_FRAME["NORTHEAST"]
var/list/NE_LOC = CONTROLLER.SCREEN_LOC_to_LIST(NORTHEAST.screen_loc)
var/HUD/border/frame/side/SIDE = CONTROLLER.HUD_OBJECTS_FRAME["NORTH"]
SIDE.screen_loc = "[NW_LOC["x"]+1]:[NW_LOC["xp"]],[NW_LOC["y"]]:[NW_LOC["yp"]] to [NE_LOC["x"]-1]:[NE_LOC["xp"]],[NE_LOC["y"]]:[NE_LOC["yp"]]"
SIDE.ORIGINAL_SCREEN_LOC = SIDE.screen_loc
SIDE = CONTROLLER.HUD_OBJECTS_FRAME["SOUTH"]
SIDE.screen_loc = "[SW_LOC["x"]+1]:[SW_LOC["xp"]],[SW_LOC["y"]]:[SW_LOC["yp"]] to [SE_LOC["x"]-1]:[SE_LOC["xp"]],[SE_LOC["y"]]:[SE_LOC["yp"]]"
SIDE.ORIGINAL_SCREEN_LOC = SIDE.screen_loc
SIDE = CONTROLLER.HUD_OBJECTS_FRAME["WEST"]
SIDE.screen_loc = "[SW_LOC["x"]]:[SW_LOC["xp"]],[SW_LOC["y"]+1]:[SW_LOC["yp"]] to [NW_LOC["x"]]:[NW_LOC["xp"]],[NW_LOC["y"]-1]:[NW_LOC["yp"]]"
SIDE.ORIGINAL_SCREEN_LOC = SIDE.screen_loc
SIDE = CONTROLLER.HUD_OBJECTS_FRAME["EAST"]
SIDE.screen_loc = "[SE_LOC["x"]]:[SE_LOC["xp"]],[SE_LOC["y"]+1]:[SE_LOC["yp"]] to [NE_LOC["x"]]:[NE_LOC["xp"]],[NE_LOC["y"]-1]:[NE_LOC["yp"]]"
SIDE.ORIGINAL_SCREEN_LOC = SIDE.screen_loc
var/HUD/BACKGROUND = CONTROLLER.HUD_OBJECTS_FRAME["BACKGROUND"]
BACKGROUND.screen_loc = "[SW_LOC["x"]+1]:[SW_LOC["xp"]],[SW_LOC["y"]+1]:[SW_LOC["yp"]] to [NE_LOC["x"]-1]:[NE_LOC["xp"]],[NE_LOC["y"]-1]:[NE_LOC["yp"]]"
var/HUD/BUTTON
var/buttons = 0
if(CONTROLLER.HUD_OBJECTS["RESIZE"])
BUTTON = CONTROLLER.HUD_OBJECTS["RESIZE"]
BUTTON.screen_loc = "[NEW_LOC["x"]+1]:[NEW_LOC["xp"]],[NEW_LOC["y"]]:[NEW_LOC["yp"]]"
BUTTON.ORIGINAL_SCREEN_LOC = BUTTON.screen_loc
if(CONTROLLER.HUD_OBJECTS["MOVE"])
BUTTON = CONTROLLER.HUD_OBJECTS["MOVE"]
BUTTON.screen_loc = "[NEW_LOC["x"] - buttons]:[NEW_LOC["xp"]],[NEW_LOC["y"]]:[NEW_LOC["yp"]]"
BUTTON.ORIGINAL_SCREEN_LOC = BUTTON.screen_loc
buttons += 1
if(CONTROLLER.HUD_OBJECTS["MENU"])
BUTTON = CONTROLLER.HUD_OBJECTS["MENU"]
BUTTON.screen_loc = "[NEW_LOC["x"] - buttons]:[NEW_LOC["xp"]],[NEW_LOC["y"]]:[NEW_LOC["yp"]]"
BUTTON.ORIGINAL_SCREEN_LOC = BUTTON.screen_loc
buttons += 1
if(MINI_MAXI)
MINI_MAXI.screen_loc = "[NEW_LOC["x"] - buttons]:[NEW_LOC["xp"]],[NEW_LOC["y"]]:[NEW_LOC["yp"]]"
MINI_MAXI.ORIGINAL_SCREEN_LOC = MINI_MAXI.screen_loc
if(RE_MINIMIZE)
MINI_MAXI.minimizeHUD()
for(var/HUD/OBJECT in CONTROLLER.CHAT_LINES)
var/OBJECT_LOC = CONTROLLER.SCREEN_LOC_to_LIST(OBJECT.screen_loc)
OBJECT.screen_loc = "[OBJECT_LOC["x"] + DIFFERENCE_x]:[OBJECT_LOC["xp"] + DIFFERENCE_xp],[OBJECT_LOC["y"] + DIFFERENCE_y]:[OBJECT_LOC["yp"] + DIFFERENCE_yp]"
OBJECT.ORIGINAL_SCREEN_LOC = OBJECT.screen_loc



Yeeeaaaahhh... Needs optimized, but I only get a realistic 20-40 minutes a week working on anything BYOND related. :\
In response to Maximus_Alex2003
Maximus_Alex2003 wrote:
Yeeeaaaahhh... Needs optimized, but I only get a realistic 20-40 minutes a week working on anything BYOND related. :\

Heard that. I can feel the silent judgement on the Discord when I say I've been working on my game every day for like 7 months now and it's still trash. That's what happens when "every day" means "a total of 5 minutes in between toddler stuff." :p
Falcon lazorz wrote:
is that actually a castlevania game you're making or are they just placeholders

Placeholders, but the game I have in mind will have a similar feel.
Let's go practice medicine.
In response to Zuhayr
Zuhayr wrote:
Let's go practice medicine.

++
In response to Zuhayr
Zuhayr wrote:
Let's go practice medicine.

Sexy!

Pardon the strong language in this image link:
https://cdn.discordapp.com/attachments/314829635672211457/ 328221183801819137/unknown.png

Been trying to chase down a deletion/null list issue and at this point I'm just going to go to sleep and hope it fixes itself tomorrow.
Page: 1 2 3 ... 283 284 285 286 287 ... 349 350 351