Author Topic: General Discussion  (Read 3821639 times)

0 Members and 32 Guests are viewing this topic.

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7440 on: May 11, 2016, 10:56:07 AM »
Button to terminate the engine quickly does make sense, I did add that for my own testing, although it will send you to main screen. This has nothing to do with loosing or winning, I'll try to make sure that it can function anywhere somehow and push.
Well, another option is to add antiheal spell which deals 99999 damage to the user team, ending the fight.

You have access to teams in the order you've added them to be instance (be.teams field, it's a list) or to team objects you've created.
That's what I was talking about when some time ago asked to make a function that handles battles automatically...

You can just ask about complicated cases like these and than just go on with your quest development, it doesn't prevent your from doing anything.
If I don't write quests, it's not because something prevents me  :D
As development shows, I'm not good with quests dialogues, unlike interactions and items. Well, at least I don't like how those dialogues look like.

One: It's obvious that we can create this action. So it's not that BE doesn't support it, it's that running away isn't coded in yet.
Two: It's not really all that different from getting your party wasted in a none "battle to the death" scenario which should be our default.
Three: Yet another thing that you that you can plainly ask about.
Nah, it's just an example. There are infinite amounts of possible options. Running away, scripted battles, invulnerability effect for quest cases, reinforcements for enemy team, etc, etc. We'll see Alkion v.5.0 sooner than they all can be coded  :) So events should be tied to existing mechanics, not the other way around.
« Last Edit: May 11, 2016, 11:01:36 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7441 on: May 11, 2016, 11:15:43 AM »
Well, another option is to add antiheal spell which deals 99999 damage to the user team, ending the fight.

You know how to do that :D

Anyway, I took a good look at the code and there is no good way (and just a few of really, really bad ways) just to end BE. By far the best way is not even what I did in the past but to simply break the BE loop right before the next repetition.

So the Terminate button will do just that from this point on, it will not terminate anything right away but it will after the current loop ends. Basically, you just click the button and skip next action or wait till AI is done with whatever the heck it was doing.
« Last Edit: May 11, 2016, 11:18:04 AM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7442 on: May 11, 2016, 11:34:18 AM »
Ok, what the hell. When I fight a character hired by MC, I can kill her and nothing happens to her after battle ends. When MC dies in battle with the same code, it's instant game over. It's unfair  :(


I added DarkTouch, it kills the whole party, unless someone is immune to darkness. Hopefully, AI will not use it too often in testing battle :)
 
« Last Edit: May 11, 2016, 11:39:28 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7443 on: May 11, 2016, 12:03:04 PM »
Ok, what the hell. When I fight a character hired by MC, I can kill her and nothing happens to her after battle ends. When MC dies in battle with the same code, it's instant game over. It's unfair  :(

BE shouldn't end the game all by itself or do anything of a sort, if it does, I left some testing code there that I didn't mean to. Confirm this... if it's like that, I'll take a look at the code chain.

I left all the after match BE crap to coders. Those who died in the combat are all added to be.corpses (possibly another poorly named variable, I borrowed it from some other BE design).

Team object you provided to BE remain intact after the battle, it should not be possible to kill off a character in BE (health reduced to 0) unless something is poorly coded somewhere, it can only be something that overrides default BE functionality or misused in some way.

I added DarkTouch, it kills the whole party, unless someone is immune to darkness. Hopefully, AI will not use it too often in testing battle :)

AI don't use the whole array of attacks in the game so that should never happen.

Ah ok, you've added to attack allies :D It can happen, at least in that BE testing scenario, probability is still very low.
« Last Edit: May 11, 2016, 12:08:50 PM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7444 on: May 11, 2016, 12:09:47 PM »
I even tested it in the testing battle. DarkTouch = instant game over -_-

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7445 on: May 11, 2016, 12:23:32 PM »
I even tested it in the testing battle. DarkTouch = instant game over -_-

Healing spell is meant to heal, not kill, there are no checks and no way that it can even add a death event to the event queue. Make it an attack spell and it should work properly.

It would take month if not years to code in a BE that will anticipate every possible combination, prolly creating a cluster fuck of code and if/else spaghetti in the process but I'll add more proper logic during next refactoring effort.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7446 on: May 11, 2016, 12:47:18 PM »
Yeap. I kinda figured if BasicHealingSpell adds its effect to health, negative effect might as well reduce it. I thought that type="all_allies" simply cannot work with SimpleMagicalAttack, but if it's not the case, then I wonder why you added BasicHealingSpell instead of using negative effect with SimpleMagicalAttack.

Oh, and running away is just an example. It should exist inside SE, but inside normal BE it's not so useful. If you want to add something to BE, resolve issue 174 instead  :)
« Last Edit: May 11, 2016, 12:50:36 PM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7447 on: May 11, 2016, 01:11:50 PM »
Yeap. I kinda figured if BasicHealingSpell adds its effect to health, negative effect might as well reduce it. I thought that type="all_allies" simply cannot work with SimpleMagicalAttack, but if it's not the case, then I wonder why you added BasicHealingSpell instead of using negative effect with SimpleMagicalAttack.

You generally don't want to defend against healing spells, defense is always taken into consideration when the attack (Action) family is used, so we had to overwrite the part that does it. Also the logged text (attacked vs healed). Also, "why you added?", it's not like I wrote 1000 lines of code for it that SimpleMagicalAttack and it's parents are already using, I've inherited from SimpleMagicalAttack using all those 1000 lines of logic and add/"overloaded" like 40 lines that mattered.

Oh, and running away is just an example. It should exist inside SE, but inside normal BE it's not so useful. If you want to add something to BE, resolve issue 174 instead  :)

Ok, I'll take a look at whatever 174 is :D
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7448 on: May 11, 2016, 01:30:58 PM »
Oki, you now it should be able to provide music="random" argument.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7449 on: May 11, 2016, 02:00:43 PM »
Time to improve BE resources a bit, since I'm gonna use it for interactions...

Do you want to keep battle (2).mp3 battle music? It's the one from final fantasy 7, if I'm not mistaken. It's not like this it bad, but it's highly recognizable, and I'd even say overused.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7450 on: May 11, 2016, 02:21:43 PM »
Actually someone commented on us using the tracks they liked and knew for the BE, I enjoy it as well.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7451 on: May 11, 2016, 02:26:55 PM »
Trying to figure out how to do the sorting efficiently... can't figure out best scope to do it at :( Gonna take a 5 minute break and really focus on it :D

Edit:
Yeah, there is no problem in code a good 20 minutes of focus can solve. I think we'll have a decent system soon enough!
« Last Edit: May 11, 2016, 02:59:24 PM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7452 on: May 11, 2016, 03:30:28 PM »
Big push incoming... I edited existing tracks to get rid of too long silence in the end of some of them, and added new ones, now we have 26. Now the hard part, backgrounds for all, or at least most locations  ::)
« Last Edit: May 11, 2016, 03:58:01 PM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7453 on: May 11, 2016, 04:57:05 PM »
Lovely... as if 12 wasn't enough :D

New sorting logic incoming right after I've download new tracks. New code is fine and very flexible, instantiation is a bit "meh" but who gives a crap :D Maybe I'll find a way to import it in the future. I'll recode chars list filters to work with it next.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7454 on: May 11, 2016, 06:46:21 PM »
New sorting logic incoming right after I've download new tracks. New code is fine and very flexible, instantiation is a bit "meh" but who gives a crap :D Maybe I'll find a way to import it in the future. I'll recode chars list filters to work with it next.

Oki, that is now done as well, still one or two tiny kinks to work out but in it's working well now :D Apart from a far superior code to what we had before, it has new functionality:

- Now possible to combine any variations of filters, not just one filter per logical group.
- There is no bloat of 30 extra filters in characters listing screen. If the filter is there, it means that it at the very least might be useful.
- Everything will work a lot faster now because filters are no longer calculated on runtime but only on demand, when it makes sense.

*- We can now add more filters without too much fuss due to better and more flexible code.
*- We can now sort using the same system.
Like what we're doing?