Hime-Works / Requests

Bug reports and requests that may require longer discussions and is not suitable to leave on the blog
http://himeworks.com/
GNU General Public License v2.0
7 stars 9 forks source link

State Elements... #285

Closed Roguedeus closed 9 years ago

Roguedeus commented 9 years ago

We have Element Damage... And UsableItem Effects, like add state, etc... But nothing combined.

What if, a stun wasn't just a stun, but an ICE stun? All rates are effected first by element resistance, and then by effect resistance. Thus a target 50% resistance to ICE, and 50% Resistance to Stun, has a 25% total resistance against ICE Stun.

This is just a simple example. But it would make certain effects able to be applied much more liberally, when something Immune to an element, is by extension also immune to all that elements linked effects.

Meanwhile, an EARTH Stun, will work fine... etc.

Elements are purely cosmetic. It would be linked to element ID's and thus can be easily extended.

Now... How would the easiest way to implement it be?

If the effect is a state, the note tag could be on that state... But then, it would require every state of every element to be individually defined. What if the link were made on the UsableItem?

Thus, only one state is needed, and can be applied under different circumstances. Kind of like conditional effects.

example_2 This would mean that each blind effect could be assigned a different element ID dependency. Or the same dependency, under different conditions... etc...

Roguedeus commented 9 years ago

Yanfly's latest skill based scripts are filling in many of the options I added to his VXA scripts.

Such as persistent Cooldowns. And shared cooldowns for groups of skills... etc...

I wonder what prompted him to do this. But I am not complaining. As a matter of fact, its making me look forward to making the transition to MV one day. I know many of the minimum features I can accept won't require me to do so much coding.

Roguedeus commented 9 years ago

Looks like Fallout 4 is going to have to wait...

Budget went to Pre-Ordering MV since I am likely to have so little time between Divinity Original Sin Enhanced Edition, my Netflix Queue and Golem Legend anyway.

Might as well spend what time remains doing something resembling productive.

Roguedeus commented 9 years ago

What about proximity events in encounters causing reinforcements?

If you trigger an encounter within a certain range of another encounter, that other encounter will reinforce the current encounter in 'X' turns, related to how far away it was. (with a small random element)

How could that be determined?

Perhaps, both encounters occur at once? Combining troops?

Hmm....

Roguedeus commented 9 years ago

In case you haven't noticed... Your forum has been infiltrated by spammers. ;)

HimeWorks commented 9 years ago

ah, I was wondering why that subdomain was taking up so much space.

I had thought maybe the forums had used a lot of bandwidth. It seems like it started last month, where the usage spiked:

2015-09-05  0.0000 MB
2015-09-06  0.0167 MB
2015-09-07  0.1736 MB
2015-09-08  0.0040 MB
2015-09-09  1.0236 MB
2015-09-10  28.2325 MB
2015-09-11  21.6709 MB
2015-09-12  12.3595 MB
2015-09-13  9.4447 MB
2015-09-14  4.6837 MB
2015-09-15  30.9206 M

Solution:

We have now completely destroyed the domain forums.himeworks.com from our system!

Roguedeus commented 9 years ago

I am entertaining ideas of possible MV Android builds so I have something to do in my rare moments of boredom.

Something that can be considered a casual experience, with no story. Something consumable in 5 to 10 minute spurts.

Hmmm... Have one good idea. Not sure if I want to spend the time experimenting when I could be working on Golem Legend.

Roguedeus commented 9 years ago

I'm coming up with an interesting premise for the project...

Tentatively named, ProjectOne

It's going to be a game that knows its a game, and makes constant reference to that fact.

Roguedeus commented 9 years ago

Is the primary load for a domain hosted HTML5 deployment of MV, simply downloading the game to your browser? How intense would it be on the host?

Often if you get to much traffic they hamstring your service and demand you upgrade to VPS or something.

HimeWorks commented 9 years ago

For a default MV project, yes. Data is being sent to the client whenever the client needs it. Now, even if you had a GB game, that doesn't mean everything will be sent over.

Roguedeus commented 9 years ago

Initially I told myself to ignore MV and focus on VXAce, but I think this is a good opportunity to ride the MV train and build some community for my work. If it leads to never touching VXAce again, at least the two or so years I worked with it might have given me the experience I need to do better this time. ;)

Roguedeus commented 9 years ago

Have you been giving any thought to the code visibility issues with HTML5?

HimeWorks commented 9 years ago

You can't do much about it.

Roguedeus commented 9 years ago

So, browser versions will function mostly as a lure for stand alone builds. Like demos, but with better access.

HimeWorks commented 9 years ago

I don't think it would too big of a deal if people have access to your scripts. Just obfuscate it so that it would not be easily usable on its own.

Roguedeus commented 9 years ago

Any suggestions on how to do that? I've never attempted to.

Personally, I am going to resist the urge to script anything until I have at least one semi-complete project. If I do, it will be mostly for utility. No new game mechanics.

Roguedeus commented 9 years ago

The hardest part, I think, will be resisting the urge to add new features...

At least with straight content creation, the result is game play.

But with feature coding, the result is potential for new game play, that still needs to be made into content... And the hope that it doesn't break or invalidate existing game play.

Roguedeus commented 9 years ago

I wonder how long it will take for the scripting ecosystem of MV to match or exceed VXAce.

BTW, I noticed in that 2 hour video on MV that there are camera controls in events. Makes me wonder how much control we will have by default.

Roguedeus commented 9 years ago

The idea that all this code I've written these last several months, is largely useless now, is painful to consider.

I am telling myself that I might revisit my VXAce projects in the future... But its not likely.

In the end. I have a lot of experience... and thats about it.

Hopefully that experience translates without to much effort.

Roguedeus commented 9 years ago

I will be hitting the ground running today, with MV. Spending as much time as I can releasing a demo ASAP.

I am making it a rule not to think of touching code until I have my first few projects complete. But I may try to write small ones.

I guess what I am trying to say is... I hope I don't become to much on an annoyance if I frequently request VXAce conversions, or advice again. ;)

Roguedeus commented 9 years ago

First order of business... See if I can break this thing.

Roguedeus commented 9 years ago

Well... Looks like a significant compromise I made to my design, won't even work now. Yanfly affirmed that Cooldowns don't work on equip granted skills, by design...

Either I change that... Or I need to re-imagine a way around it, for balance.

Roguedeus commented 9 years ago

Do you know the commands necessary to return an items target from the Item Screen?

Trying to make an item change the targets class.

This would be so easy if I knew any JavaScript.

Roguedeus commented 9 years ago

I'm trying to trace the logic through the Scene_ItemBase and Scene_Item objects and how it eventually gets the target to use the item...

edit: Seems to use Scene_ItemBase.prototype._actorWindow

edit: So would it be: $gameParty.members()[Scene_ItemBase.prototype._actorWindow.index()] ???

edit: Ugh... I can't even figure out how to get the console to show log messages... F8 opens console. And there are a ton of useful tools and stuff. But which do I use to see my log output?

edit: LoL I feel like an idiot flailing around... It seems that we need to setup our computer to act like a server to receive log output. All this, JUST to see our code logs... /sigh

Roguedeus commented 9 years ago

I am about to rage...

Is it really necessary to HOST THE ENTIRE BUILD in a local server, just to see your damn log outputs? (not to mention general errors)

How is this even remotely accessible for test builds via the toolset?

Does this mean I need to copy/paste the entire build into a local server every time I need to see if the changes I've made to the code functions correctly?

Roguedeus commented 9 years ago

Please tell me there is an easier way to accomplish this using an IDE...

Roguedeus commented 9 years ago

I am no closer to figuring out how to make this work... Something as simple as changing the class of an item target is beyond me... It feels so infuriating. After spending so much time getting to a point where I could do anything I wanted in VXAce.

Yes, I could simply make the common event actor specific. But that's crap. /grumble

edit: Taking a lunch break... starting an hour ago... ;p

HimeWorks commented 9 years ago

Open a new issue for MV.

HimeWorks commented 9 years ago

You can testplay in the editor and press F8 to open the console On Oct 24, 2015 11:30, "Roguedeus" notifications@github.com wrote:

I am no closer to figuring out how to make this work... Something as simple as changing the class of an item target is beyond me... It feels so infuriating. After spending so much time getting to a point where I could do anything I wanted in VXAce.

Yes, I could simply make the common event actor specific. But that's crap. /grumble

— Reply to this email directly or view it on GitHub https://github.com/Hime-Works/Requests/issues/285#issuecomment-150826706 .

Roguedeus commented 9 years ago

I've managed to get XAMPP installed and running a local host for in browser development. Though I am still unimpressed with the JS support I've seen in Atom. May switch back to Sublime Text, or try using an IDE if I start writing code. (I am REALLY trying not to)

(I just want a used item to change the targets class... sheesh. I hate being ignorant)

I also learned that the reason I wasn't seeing console output in F8 was my CommonEvent was broken. I got so side tracked by frustration, and keeping up with rpgmakerweb forum updates that I missed a few things.

ALSO, I managed to figure out that there are some really ODD quirks to Javascript syntax when calling methods in an eval'd string. Some of my damage formulas were not working until I put parentheses around some of the math. (Specifically when using min and max methods)

edit: Also, maybe its just me but it seemed like JS's Eval (or maybe just the damage formula eval) will simply return ZERO when math is wrong most of the time. Of course, it may be the base code rescuing the error. I can't see it yet...

edit: Browser development has also tought me the importance of CTRL + F5, rather than just F5...

HimeWorks commented 9 years ago

Yes, damage formula returns 0 if there's an error in the formula.

For browser development, I would recommend running nodeJS https://nodejs.org/en/

But since you've already got a server set up, it probably doesn't matter too much.

Roguedeus commented 9 years ago

I will use whatever is most convenient. Is there something that nodejs does that I can't do otherwise?

Why are you using it?

HimeWorks commented 9 years ago

Less to install. On Oct 25, 2015 12:23, "Roguedeus" notifications@github.com wrote:

I will use whatever is most convenient. Is there something that nodejs does that I can't do otherwise?

Why are you using it?

— Reply to this email directly or view it on GitHub https://github.com/Hime-Works/Requests/issues/285#issuecomment-150938707 .

Roguedeus commented 9 years ago

With XAMPP all I did was install it and point it at my project.

Done. ;)

I just start it up and access my browser.

HimeWorks commented 9 years ago

With nodejs being a JavaScript based server, you could build your backend in js as well. For me its just one less step involved On Oct 25, 2015 14:26, "Roguedeus" notifications@github.com wrote:

With XAMPP all I did was install it and point it at my project.

Done. ;)

I just start it up and access my browser.

— Reply to this email directly or view it on GitHub https://github.com/Hime-Works/Requests/issues/285#issuecomment-150951743 .

Roguedeus commented 9 years ago

I'm not following you. What is the difference between the two?

With XAMPP I am hosting a local server and pointing it at the project. So when I access the server, I get my project as a web page. I can change the project in the tool, and just re-load the web page to test it.

How is nodejs different than that?

HimeWorks commented 9 years ago

There's no difference if all you need is a local server. On Oct 25, 2015 15:41, "Roguedeus" notifications@github.com wrote:

I'm not following you. What is the difference between the two?

With XAMPP I am hosting a local server and pointing it at the project. So when I access the server, I get my project as a web page. I can change the project in the tool, and just re-load the web page to test it.

How is nodejs different than that?

— Reply to this email directly or view it on GitHub https://github.com/Hime-Works/Requests/issues/285#issuecomment-150961843 .

Roguedeus commented 9 years ago

So what does it do then? I am totally missing something here. ;)

Is it an API?

Roguedeus commented 9 years ago

This is where my tendency to know enough to be dangerous gets in the way... I am confused.

Can you describe how you are using it to get something done and why?

You refer to it being a Javascript server. But how would that be different than XAMPP?

I really am totally ignorant regarding network software and the like. Such as what are you referring to when you say that you can build your backend in javascript?

edit: Looking it up in wikipedia and reading the nodejs 'ABOUT' page hasn't helped. They use industry jargon I can barely follow.

HimeWorks commented 9 years ago

I don't know too much about server/network technology so I can't say much about the differences.

From what I understand, Apache is mainly PHP, while nodeJS is basically javascript. I've seen people running nodeJS on apache...but I'm assuming they do that for backwards compatibility purposes (eg: company started with apache, 10 years later want to upgrade but don't want to rewrite everything)

In general, servers are servers. Some of them are probably more efficient than others, some probably have different features than others, but if you just want to serve some files to clients then it doesn't really matter what you pick unless you want to get into the details.

When I say backend I'm referring to the server, or basically anything that the players won't see. If you treat the game as the front-end or client, then the server would be your back-end.

Client sends requests to server, server processes it and responds to the client's request. How you choose to implement the server's logic would then be up to you and what language you would prefer (ruby, python, php, java, javascript, Go, etc)

Roguedeus commented 9 years ago

It appears as though events are automatically proximity checked in MV (It explains some things)... I wish I could more easily see it in code.

I have auto_run events that won't execute when far away from the PC. Unless something obvious is escaping me, this is the only explanation.

I am using a full size map to test ATM. (256x256)

edit: Or maybe I jumped to conclusions... WTF did I just do?!?

edit: I have NO IDEA what I just did to fix it. But its fixed... This is going to bug me.

Roguedeus commented 9 years ago

Today is a Pizza and Divinity Original Sin Enhanced Edition day...

https://www.youtube.com/watch?v=rxnApC7Uxik

Roguedeus commented 9 years ago

I can hardly believe this is happening... But I played about 15 minutes of Divinity and the entire time all I could think of, was work. (If you could call it that)

Looks like its back to MV for me...

I must be losing my mind.

Roguedeus commented 9 years ago

I am considering rethinking my move to MV.

There is just so much that I cant do now, and every time I hit a wall, I'm back to hoping someone fixes it, rather than fixing it myself.

edit: No. It is just my frustration. The things that are in my way are easily side stepped until they are fixed. I have everything I need to make a compelling game. And by the time its done, I will have even more.

I just need to focus on what I can do NOW, rather than obsess over what I can't. Make the best of what I have.

HimeWorks commented 9 years ago

Well, MV is a different beast. I'm still trying to go through the battle logic lol

Roguedeus commented 9 years ago

Oddly that makes me feel better. As good as you are at figuring things out. ;)

I don't feel so stupid. lol

Currently, I am doing my best to figure out a solution for Yanfly's Event Chase plugin, as it relates to events currently set to chase the player... They cant be moving, and waiting to chase the player, at the same time, without using parallel processes and some sort of makeshift proximity detection. This is because a parallel process can't be that AND event touch triggered at the same time.

All this for something as simple as a mobile sentry. Immobile ones work great! But try to get the thing to take a few steps... /sigh

Roguedeus commented 9 years ago

Ok... I may have underestimated the Atom IDE.

I just added the js folder as a Project Folder and I am suddenly getting awesome intelligent auto completion queues. Super fast too.

edit: Wasn't coding... Just making a reference of potential functions for damage formulas. ;p

Roguedeus commented 9 years ago

I figured out how to make the target of an item change class... lol

15_1028_changeclass

Roguedeus commented 9 years ago

Am I understanding this correctly?

Yanfly is effectively aliasing the base function here.

Yanfly.APS.Game_BattlerBase_states = Game_BattlerBase.prototype.states;
Game_BattlerBase.prototype.states = function() {
    var array = Yanfly.APS.Game_BattlerBase_states.call(this);
    array = array.concat(this.passiveStates());
    this.sortPassiveStates(array.filter(Yanfly.Util.onlyUnique));
    return array;
};

Via storing the original in Yanfly.APS.Game_BattlerBase_states and then re-defining it to include the stored function with his added code.

Roguedeus commented 9 years ago

I was looking for a way to add a passive state via script call... no dice. He is only querying note tags.

For what I am looking to do, we are going to need a replacement for Permanent States. /sigh

HimeWorks commented 9 years ago

Yes. It's basically what you did in Ruby, except it isn't explicitly packaged together using an alias keyword.

You could always add-on to his script though so that passiveStates also includes states added through script calls.