Hi, great to see a new evolution of DIYCE come to live. I've been DIYCE addict sine the first day I learned about it. Today I learned about this reincarnation, and am ready to become addict to this as well

. I have only yet downloaded the addon and looked at code and combat scripts. Have not yet tried it yet.
The combat scripts look much cleaner than in previous DIYCE versions. I run quite some combo's, so my current CustomFunctions is a 680 line monster. I love being able to split the logic into a file per class-combi.
Next, I like the reload possibility, since restarting the client each time after I changed CustomFunctions was not funny. (Now I realize that I should have asked earlier for a work-around for that.)
Apart from these obvious and great advantages, are there other advantages of FuzzyDIYCE? What about speed?
Do we know inherent disadvantages, except for the fact that is is new and still has bugs, which should be just a matter of time to get resolved?
When looking at some combat scripts (mainly at RogueScout), the following questions came up:
I don't understand why hero and uni are such important parameters to the combat method. In my own DIYCE scripts, I do not even manage hero pots and unicorn through DIYCE. Personally, I would treat these just as any other Player Buff, if I wanted. For example, in my own DIYCE scripts I have logic like this to auto-eat housemaid food, and I would in FuzzyDIYCE want to do the same for hero pots (IF I wanted DIYCE to auto-drink hero-pots.)
|
Source code
|
1
2
3
4
|
{ name = "Action: "..foodslot, use = ( (not pbuffs["Unimaginable Salad"])
and (not pbuffs["Roast Leg of Lamb"])
and (not pbuffs["Fried Salted Fish"])
and (not pbuffs["Fried Rib"])) },
|
Same as previous post. I would even create multiple try methods, to prevent typo's in the first argument, and to allow specific argument lists per option, so e.g.
|
Source code
|
1
2
3
4
5
6
7
|
-- Silence target skills
trySkill( "Throat Attack", SilenceThis)
-- Survival
trySkill( "Evasion", PlayerInCombat and PlayerHealthPct < .5)
-- Maintain Hero, Speed pots, HP pots and stuff
tryAction( hero, PlayerHasBuff("Hero Magic Medicine") and PlayerHasBuff("Hero Magic Medicine").time <= 5)
tryAction( uni, PlayerHasBuff("Touch of the Unicorn") and PlayerHasBuff("Touch of the Unicorn").time <= 5)
|
This line from RogueScout
|
Source code
|
1
|
try("skill", Skills["Sneak Attack"].entry, (not PlayerInCombat) and (IsTargetType("boss") or IsTargetType("elite")) and PlayerMana >= 20 and IsBehind)
|
I could miss-spell boss or elite in the strings, so you could alternatively create variables IsTargetBoss and IsTargetElite. Combined with previous remarks, we would get:
|
Source code
|
1
|
trySkill( "Sneak Attack", (not PlayerInCombat) and (IsTargetBoss or IsTargetElite) and PlayerMana >= 20 and IsBehind)
|
In my opinion, more compact and better readable.
Any reason why 'try' starts with small t and IsTargetBoss starts with capital?
It would be great if I could talk about PlayerEnergy, PlayerRage, PlayerFocus, etc, instead of PlayerMana for the respective classes. Would that be possible?
In the following code, I think Bleeding relates to the target, but that isn't obvious from the name. Should perhaps be IsTargetBleeding? On the other hand, bleed is just a debuff, so perhaps should be like the grievous wound TargetHasBuff("Bleed"). In fact, these are de-buffs. Perhaps better to distinguish buffs and debuffs on target?
|
Source code
|
1
2
|
try("skill", Skills["Wound Attack"].entry, Bleeding and TargetHasBuff("Grievous Wound"))
try("skill", Skills["Low Blow"].entry, Bleeding)
|
Ok, a lot of feedback, hopefully not too stupid after having only read code and not ye played with it

I intended to be constructive, and hope I managed to let it sound like that (English not being my mother language).

Looking forward to the next iterations of FuzzyDIYCE and my own experiments.