Author Topic: General Discussion  (Read 3789254 times)

0 Members and 12 Guests are viewing this topic.

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7770 on: June 23, 2016, 01:43:38 PM »
Done, works perfectly  :)
I also tested the exp bar, it just stays at zero progression.

I'll probably add flags to use the device on a character only once per day.

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7771 on: June 24, 2016, 07:58:49 AM »
I don't like this... especially because it will mess up and make the added effects I worked for so long at for char equip screen inconsistent.
Actually, turns out it can be done elegantly enough even with jumps.
My concerns were items that restore something completely, like health. That would be eqtarget.health = eqtarget.get_max("health"), which is impossible to do with normal items system, it only can be emulated by giving 100000 health, which is not looking very good.

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7772 on: June 24, 2016, 08:16:55 AM »
Hm. Could it be possible to include MC into ceffect effects if needed? I mean, when you use an item that heals everyone in the building, and even equipment screen shows that your health should be restored, but in fact it heals only characters, it looks odd. Either that, or I'll add a script that heals MC too via jump_to_label.
« Last Edit: June 24, 2016, 10:27:31 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7773 on: June 24, 2016, 12:15:02 PM »
Actually, turns out it can be done elegantly enough even with jumps.
My concerns were items that restore something completely, like health. That would be eqtarget.health = eqtarget.get_max("health"), which is impossible to do with normal items system, it only can be emulated by giving 100000 health, which is not looking very good.

Why not?

Hm. Could it be possible to include MC into ceffect effects if needed? I mean, when you use an item that heals everyone in the building, and even equipment screen shows that your health should be restored, but in fact it heals only characters, it looks odd. Either that, or I'll add a script that heals MC too via jump_to_label.

I don't follow, you'll need to be more precise. What I can tell you is what I did:

Creating a "dummy":

Dummy is a copy of a PytChatacter (our base class). That is a very complex business because that class doesn't just inherit from and overwrite multiple classes, it also binds a number of class instances to itself. Dummy doesn't just make copies, it accounts for addressed of data in physical memory and makes sure originals are not messed up.

Simpler: It creates a copy of a character and applies an item to that copy, leaving the original unmolested. It also reports all effects items applies to the copy that we account for in gui. I has to do quite a bit of research to figure out how to do that best...

Since we make a copy of just the target character that we'll apply the stats to, it can be only ascertained from the description that anyone else would be effected. I am not even 100% sure that location effect is at play because the system was changed. So answer to most questions is: Yes, it's possible but the real question is it is sensible to implement.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7774 on: June 24, 2016, 12:25:07 PM »
Er, you do remember what ceffect field does, right? It is supposed to affect a group of characters. Either all, or per building. I'm not talking about dummies.
No matter where MC is, when he uses it, it should effect him too, since he's kinda in the middle of the effect. And characters cannot use such items anyway.

But even if MC is in a building, it doesn't affect him, only characters. While in some cases it's useful, in others it's not good. It can easily be fixed by jump to label that heals him too. But I wonder if you prefer a more global solution, ie changing field mechanics.

Why not?
Can't guarantee full heal for anyone who has more than 10000 hp. Doesn't matter atm, might be a problem in the future.
« Last Edit: June 24, 2016, 01:47:12 PM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7775 on: June 24, 2016, 05:08:12 PM »
It should effect him as well. If not, I'll fix it quickly as a bug in the future.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7776 on: June 25, 2016, 05:08:53 PM »
"ceffect": "allgirls" doesn't do anything at all  :(

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7777 on: June 25, 2016, 06:58:46 PM »
"ceffect": "allgirls" doesn't do anything at all  :(

It's an ancient design, I'll revisit it when I can.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7778 on: June 29, 2016, 02:27:24 PM »
Do you mind if I change luck limits from (-50, 50) to (-100, 100)?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7779 on: June 29, 2016, 02:41:23 PM »
No, but it will mess up a couple of system that are balanced for that range. MC Jobs, finding stuff, be and prolly much more, I recall us using luck quite a bit for minor modding.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7780 on: June 30, 2016, 10:51:59 AM »
I think negative luck wasn't a good idea from the viewpoint of design. We don't show min values in gui, so when a character has 0/50 or 10/50 luck, it does not look like a high value, while in fact it is.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7781 on: June 30, 2016, 02:11:59 PM »
I think negative luck wasn't a good idea from the viewpoint of design. We don't show min values in gui, so when a character has 0/50 or 10/50 luck, it does not look like a high value, while in fact it is.

Yeap, one of the things to note for the future, negative values are not a very bright idea... logically it makes sense but gui/code wise, not so much.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7782 on: July 01, 2016, 08:52:37 AM »
Either we shouldn't show it at all, or do it via a bar of some kind. It's not a problem if we hide it, in many games luck is a hidden stat.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #7783 on: July 01, 2016, 09:28:09 AM »
Maybe post beta. I am trying to kill the area item effect bug and the se is not going to finish itself.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #7784 on: July 01, 2016, 12:47:22 PM »
Doesn't multiple used two times atm?
First
Quote
        def get_attack(self):
            """
            Very simple method to get to attack power.
            """
            a = self.source
            if any(list(i for i in ["melee", "ranged"] if i in self.attributes)):
                attack = (a.attack + self.effect) * self.multiplier  # TODO: ADD WEAPONS EFFECTS IF THIS IS A WEAPON SKILLS.
            elif "magic" in self.attributes:
                attack = (a.magic + self.effect) * self.multiplier
            else:
                attack = self.effect + 20
            return attack   
then
Quote
        def default_damage_calculator(self, t, attack, defense, multiplier):
            damage = 0
            # Calculate damage same as usual
            if (defense < 1):
                damage = attack * 1.5
            else:
                damage = (attack/defense) + 0.5
               
            # Get a random number between 0.8 and 1.2
            rand = (random.random() * 0.4) + 0.8
            damage = int(float(damage) * multiplier * 10 * rand)
            return damage
Or they are different multipliers?