devolution

Author Topic: General Discussion  (Read 3821700 times)

0 Members and 27 Guests are viewing this topic.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8400 on: September 09, 2016, 01:54:48 PM »
Ok, I have "disposition": [1000], "upkeep":[1000] now. Disposition works. Upkeep doesn't.

I think it does.

We do not have a stable financial system at the moment, final upkeep is fixed with:

Code: [Select]
        def get_upkeep(self):
            # TODO: To be revised after skills are added!
            char = self.instance
           
            if char.status == 'slave':
                return 50
            else:
                return 0

It used to be this:
Code: [Select]
            # if char.status == 'slave':
                # if traits['Prostitute'] in char.occupations:
                    # bu = 20 * char.rank
                    # su = char.charisma/10 + char.refinement*1.5 + char.constitution/5 + char.reputation/2 + char.fame/2 # Stats Upkeep
                    # ssu = char.anal/8 + char.normalsex/8 + char.blowjob/8 + char.lesbian/8
                     
                    # return int(bu + su + ssu + char.upkeep)
 
                # elif traits['Stripper'] in char.occupations:
                    # bu = 3 * char.strip
                    # su = char.charisma/10 + char.refinement*1.5 + char.constitution/5 + char.reputation/2 + char.fame/2 # Stats Upkeep
 
                    # return int(bu + su + char.upkeep)
 
                # elif 'Server' in char.occupations:
                    # bu = 3 * char.service
                    # su = char.charisma/10 + char.refinement*1.5 + char.constitution/5 + char.reputation/2 + char.fame/2 # Stats Upkeep
 
                    # return int(bu + su + char.upkeep)
 
                # else:
                    # bu = 20
                    # su = 0 # Stats Upkeep
                    # for stat in char.stats:
                        # if stat not in ["disposition", "joy", "health", "vitality", "mood"]:
                            # su += getattr(char, stat)
 
                    # return int(bu + su + char.upkeep)
 
            # elif char.status == 'free':
                # return char.upkeep
 
            # else: # This is for any unknown types
                # bu = 50
                # su = 0 # Stats Upkeep
                # for stat in char.stats:
                    # if stat not in ["disposition", "joy", "health", "vitality", "mood"]:
                        # su += getattr(char, stat)
 
                # return int(bu + su + char.upkeep)

I had a decent idea to write special class to handle all of the fin balancing and shit. Or game would be close to impossible to balance out, but that was never implemented. I am not planning to make really advanced right off the bat, so it will not take too long once I get around to it.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8401 on: September 10, 2016, 04:33:46 AM »
Quote
  File "game/library/interactions/GM - negative.rpy", line 64, in script
    python:
  File "game/library/interactions/GM - negative.rpy", line 67, in <module>
    result = run_default_be(enemy_team, background=back)
  File "game/library/interactions/function - interactions (GM).rpy", line 389, in run_default_be
    battle.start_battle()
  File "game/library/be/core.rpy", line 169, in start_battle
    self.main_loop()
  File "game/library/be/core.rpy", line 98, in main_loop
    ev.controller()
  File "game/library/be/core.rpy", line 1691, in __call__
    skill(ai=True, t=targets)
  File "game/library/be/core.rpy", line 529, in __call__
    self.effects_resolver(t)
  File "game/library/be/core.rpy", line 678, in effects_resolver
    defense = self.get_defense(t)
  File "game/library/be/core.rpy", line 905, in get_defense
    defense += max(minv, float(target.level)*max/lvl)
TypeError: unsupported operand type(s) for *: 'float' and 'builtin_function_or_method'
after 4x attack.
« Last Edit: September 10, 2016, 04:35:56 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8402 on: September 10, 2016, 08:24:20 AM »
I am traveling right now, gonna fix this tonight.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8403 on: September 10, 2016, 09:20:01 AM »
I could just round() it, but I dunno if it's what you want there.

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8404 on: September 10, 2016, 12:35:23 PM »
I tested fire arrow skill, which uses shatter gfx on death, which uses the infamous HitlerKaputt animation class.
When you kill mobs, they shatter all right, but at the same time the whole shattering cloud shakes, and it looks terrible.

It happens because the sprite damage effect, shake gfx, works at the same time as shatter gfx, and if you remove the shake part, shattering begins to work properly.

I could make the death effect work only after shaking ends by setting big initial_pause. But it looks weird when they explode after 1.5 seconds of shaking. It looks fine for the ice spell though, zero prism,  where damage effect is texture replacement. So we probably should have an option to cancel damage effect if death effect is about to play.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8405 on: September 10, 2016, 03:13:57 PM »
I could just round() it, but I dunno if it's what you want there.

No, no, no. It got nothing to do with rounding up. max(minv, float(target.level)*max/lvl) max should be maxv here, max is a buildin function, it's reserved.

==============>>>
Gonna look into the firearrow thing now.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8406 on: September 10, 2016, 04:49:45 PM »
...

Shaking to shatter thing is sort of fixed but it may pay off to review the methods at code refactoring in the future, some stuff is in there that feels like it shouldn't be.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8407 on: September 10, 2016, 04:55:12 PM »
I'm getting weird results when trying to use a spritesheet animation for multiattack, it's not playing completely no matter how I change timing. Maybe I don't understand how it works?

It's Triple Ice Attack in the last push.

I mean, look at it and then at normal Ice Dagger Attack, they use the same gfx.
« Last Edit: September 10, 2016, 04:56:43 PM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8408 on: September 10, 2016, 05:54:20 PM »
I'm getting weird results when trying to use a spritesheet animation for multiattack, it's not playing completely no matter how I change timing. Maybe I don't understand how it works?

It's Triple Ice Attack in the last push.

I mean, look at it and then at normal Ice Dagger Attack, they use the same gfx.

I only meant to use that class with very simple attacks, like the once that just show one image that is just a single frame. The idea was to reduce workload so you wouldn't have to import all those extra resources into the game, but you just went and did that anyway :D

It's would not be too hard to allow chaining any animation, if you want, I can look into that tomorrow.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8409 on: September 10, 2016, 06:30:47 PM »
I asked before if multiattack can support webms, and you said it doesn't matter what you use... Turns out it does -_-

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8410 on: September 10, 2016, 06:41:52 PM »
I asked before if multiattack can support webms, and you said it doesn't matter what you use... Turns out it does -_-

Oki, I'll improve the class tomorrow. It does "technically" support webms or any displayable :) It just does it with fixed timing of .3 seconds (which is not very useful for animations) :)
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8411 on: September 11, 2016, 02:50:43 PM »
I asked before if multiattack can support webms, and you said it doesn't matter what you use... Turns out it does -_-

I've pushed an updated version but it's not good yet, just little better. There are too many ifs and buts there... just another thing that wasn't worth bothering with. I'll get it working next week.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8412 on: September 11, 2016, 04:02:13 PM »
If it's too difficult, you could just said so  ::)
I suppose you could just make the length of animations customable instead of the fixed 0.3 seconds.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8413 on: September 11, 2016, 04:28:49 PM »
For single frame attacks we want alpha-fade cause it looks cool, for animations, we do not cause it looks awful. For single frame attacks we want a different (and possibly adjustable) offset and delay randomization for the same reason. Those nuances need to be relayed between three classes and a function.

It's already half-done, I'll wrap it up next week. Stuff like this is just annoying to work at, there are comments in the class that suggest that it was a plan to update it at some point anyhow. I guess that after almost two years without any releases, delays from anything that isn't absolutely necessary are getting on my nerves, gotta start meditating or something :D
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8414 on: September 12, 2016, 02:04:53 AM »
Now, now. When commercial devs release noticeably unfinished product (due to fixed release date usually), it always leads to disaster.

The problem is, when you said the function supports webms, it led me to converting many webms suitable only for multiattacks.