devolution

Author Topic: General Discussion  (Read 3788791 times)

0 Members and 12 Guests are viewing this topic.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9285 on: January 08, 2017, 12:23:41 PM »
game\content\gfx\be\auto-animations\cast_dark_1 0.07\data01_08231.png

It's the best way to see asymmetry.

Yeap, but even knowing that, I cannot "see" the issue in the game :)
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #9286 on: January 08, 2017, 12:47:40 PM »
Well, then there are no more problems with BE atm, aside from imperfect balance, AI based solely on RNG and lack of damaging effects for all elements.

I suppose finding electricity webm is easy enough, but I don't even know where to start for air or light damage effects.

All other issues are post beta.

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #9287 on: January 08, 2017, 01:27:29 PM »
And speaking of balance, healing spells are insanely strong if level is high enough. Because they use the default get_attack function to calculate power, but don't use get_defense which reduces damage for non-healing spells.

As a result, even the weakest spell restores 100% health most of the time. Therefore I changed all spells to restore a fixed part of target's hp.
« Last Edit: January 08, 2017, 02:57:26 PM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9288 on: January 09, 2017, 05:41:11 AM »
Sure, you're in charge of balancing stuff out!  :D Prolly the most difficult task atm so I am kinda afraid of going there   :'(
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #9289 on: January 09, 2017, 02:08:26 PM »
Alright, only light and air damage effects remained.

I can think of one way to make damage effect for air. You made blurred_vision and double_vision_on functions a long time ago to simulate drunk effect. I use double_vision_on since it's more suitable, and blurred_vision is not used anywhere.

But transformation used in blurred_vision might look good if implemented to the target sprite for some air spells, as if air flows distort the image. Maybe you could try to make such target_sprite_damage_effect?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9290 on: January 09, 2017, 03:17:46 PM »
I am not sure that it is easy to apply to BE. We can use shake or something else...
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #9291 on: January 10, 2017, 04:06:15 AM »
Ok, this alt rotates the sprite, is if wind does it.
Code: [Select]
    transform blowing_wind():
        parallel:
            easeout_bounce 0.1 xzoom -1.0
            easeout_bounce 0.1 xzoom 1.0
        repeat
But it "rotates", ie zooms around the sprite's left side. How to do it around the sprite center?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9292 on: January 10, 2017, 04:14:20 AM »
Either anchor, center or around. I need to try it myself to see which one works best, I'll do that in 15 mins.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #9293 on: January 10, 2017, 04:24:02 AM »
I mean, I tried xanchor 0.5, and it rotates as I need it. But before the rotate it also moves the sprite from it original position for some reason.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9294 on: January 10, 2017, 04:28:02 AM »
Code: [Select]
transform blowing_wind():
    xanchor .5
    easeout_bounce .1 xzoom -1.0
    easeout_bounce .1 xzoom 1.0
    repeat

This is prolly the correct way... we'll have to offset that initial movement manually.

Edit: My guess is that you have to offset it by .5 of the sprites width, but that could be wrong. Offset should also depend on sprites position on the battle field.
« Last Edit: January 10, 2017, 04:30:38 AM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #9295 on: January 10, 2017, 04:56:54 AM »
Sprites are ProportionalScale objects which don't have width attribute. I can get maxwidth from your ProportionalScale class, but since aspect ratio of the image is conserved, I cannot guarantee that it's the true current width  ::)

I went with
Code: [Select]
    transform blowing_wind():
        parallel:
            easeout_bounce 0.1 xzoom -1.0 xanchor 0.1 xoffset 20
            easeout_bounce 0.1 xzoom 1.0 xanchor 0.0 xoffset 0
which is not perfect, but not ugly either.
« Last Edit: January 10, 2017, 05:12:01 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9296 on: January 10, 2017, 05:58:27 AM »
Push what you got, I know the system better so I can improve upon the animation.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #9297 on: January 10, 2017, 12:00:06 PM »
I'm not sure if perfectly aligned rotation will look better, it already looks pretty cool.

Unlike all other healing spells, ReviveSpell uses red color for font when showing the number of added health above the target.

I've attempted to make an alt which recolors sprites, making them brighter.
Code: [Select]
    transform light_ray(sprite, time):
        im.MatrixColor(sprite,im.matrix.brightness(0.5)) with Dissolve(time*0.5, alpha = True)
        pause 0.1
        im.MatrixColor(sprite,im.matrix.brightness(0)) with Dissolve(time*0.5, alpha = True)
Code: [Select]
                elif type.startswith("on_light"):
                    what = target.besprite
                    t = self.target_sprite_damage_effect.get("duration", 1)
                    at_list = [light_ray(target.besprite, t)]
It works, but for some reason ignores time variable, dissolves are always too fast.
« Last Edit: January 10, 2017, 12:25:40 PM by DarkTl »

Offline picobyte

  • Jr. Member
  • **
  • Posts: 75
Re: General Discussion
« Reply #9298 on: January 10, 2017, 01:47:05 PM »
Two types of walls, both with a background, a door and three barrel formations, all in two different light settings (L on the keyboard) all in all now 354 files, 52Mb. This is somewhat comparable to the content for a single character. Is this going to be a problem? Could compress images to reduce their size.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9299 on: January 10, 2017, 02:03:04 PM »
Code: [Select]
    transform light_ray(sprite, time):
        im.MatrixColor(sprite,im.matrix.brightness(0.5)) with Dissolve(time*0.5, alpha = True)
        pause 0.1
        im.MatrixColor(sprite,im.matrix.brightness(0)) with Dissolve(time*0.5, alpha = True)

try making it pause time*.5+.1 and add the same after the second sequence.

Two types of walls, both with a background, a door and three barrel formations, all in two different light settings (L on the keyboard) all in all now 354 files, 52Mb. This is somewhat comparable to the content for a single character. Is this going to be a problem? Could compress images to reduce their size.

I don't believe so, it could become an issue if we decide to add more locations. If you're worried about the size, you can switch to a better raycasting option(s) as I've suggested earlier, code is a lot more complex but only 1/10 of the resources would be required to do the same thing.
Like what we're doing?