edited December 2020 in ORK Support
Hello I am implementing contact damage.
But I don't know if it's a bug, but it doesn't work.

1. The ability was set using "Environmental Damage Dealer" and "set Combatant" was unchecked.
The ability> Damage Dealer Settings> Animation requirement is set to run only when mana is 2 or more.
Even if the mana reaches 0, the damage dealer continues to do a damage.
that is, the battle event is not executed, but the calculation seems to be in progress.
Is there a way to prevent the calculation as well?

2. Damage Dealer does not work after using another active skill once.
(The damage dealer object must be turned on/off to work again.)
(While the damage dealer object is working fine. As soon as I use the "Heal" skill, the damage dealer stops working.)


3. My character is ai controlled and is using base attack automatically by approaching monsters.
I don't know if this is because the base attack ability is activated seamlessly, but it does not activate even when I click the skill registered in the skill bar slot.
(That is, while the attack battle animation is running without delay, it does not run even if i click the active skill registered in the skill bar slot. Can't I use other skills while the battle animation is running?)
(I have to click the skill button several times to activate it.)

* after test
This works like a scheduled task, but seems to be running very slowly. When the heal skill is pressed, the heal skill is activated after about 2-3 seconds after the basic attack is repeated several times.
In my script .AutoUse(playerCombatant); I wrote it, but it is very slow. Do you have a solution?
that is, what I want is
(1). When a basic attack is in progress, if you press a skill in the skill slot bar, how to activate the skill immediately after the previous basic attack is over.
However, it does not activate immediately when you press the skill, but activates after a few seconds (it seems like a reserved action, but it is very slow.)

(2). How to run one Ability concurrently with another while it is running
(Same as a buff skill, when the heal skill slot bar is pressed, it is activated immediately without running animation)


4. I want to load the "Damage Every" property of the damage dealer component into my script and add the formula. (To damage more and more quickly)
Is there a way to load and assign a formula to a variable in the script?

5. How to add/remove status effects to combatants in script? ORK.Game.ActiveGroup.Leader.Status.Effects.???

6. Ork's auto attack function seems to be using skills that have not been learned. Other than this,
I want to sequentially activate the skills registered in the skill bar slot.
If the skill in slot 1 is available during basic attack, activate it, slot 2 etc..
Should I use scripting to implement a scenario like this?
Is it only two way to use abilityshortcut.autouse or use function to use ability in script?

Post edited by KESHYAS on
  • 2. Solved. This has been solved by unchecking Auto damageDealer in the heal skill event settings.
  • 1) You should set that up as use requirement or use costs for the ability. The requirements for the battle animations are just to determine if that battle event will be used or not and doesn't influence if the ability is used. Without any battle events to animate the damage dealer, it'll just do the calculations.

    3) A combatant can only use one action at a time. Have you considered using the Auto Attacks instead of AI controlled players?
    Auto attacks allow the combatant to periodically use the base attack (or a defined ability) without interfering with action selection or turns, etc.
    I'd need to know more about your battle system and setup (e.g. which battle system type) to check it out.

    4) No, you'd basically have to use the formula and assign the outcome value to the damageEvery field of the DamageDealer component.

    5) You can add a status effect like this:
    combatant.Status.Effects.Add(effectID, user, null, false, false, null, null, null);
    effectID is the ID/index of the status effect, user is the combatant who causes the effect. The rest of the parameters are additional stuff that are used for passing on other information that's not needed for simply adding an effect.

    To remove a status effect:
    combatant.Status.Effects.Remove(effectID, false, true, null);
    effectID is the ID/index of the status effect, passing on false instead of true will remove all effects of that ID, otherwise only a single instance (e.g. in case you allow stacks for that effect).

    6) The auto attack is a separate ability (when using an ability) and not part of the combatant's abilities. I can look into using shortcut slots for auto attacks instead.
    It'd be helpful to know more about your system (as said, e.g. which battle system type) and how it should play out.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • edited December 2020
    Thank you for answer!!
    I am using a real-time battle system and have a 2d setting.

    1. I tested it, but the use cost and requirement don't work. AlwaysOn's damage dealer changes only "user change" and "target change".

    4. Is there a way to load the formula from the script and calculate it?
    (How to do formula calculation in script)

    another question
    1. Is there any way to call the battle event in the status effect setting??
    I want to deactivate the damage dealer in the status effect end setting,
    but
    It seems that I can only call game events (not having "activate Dealear Step").

    2. Ablilities >UseCost > StatusChanges > Add Status Effect > StatusEffectCast 0 > StatusEffect
    at this path, I would like to know how to find the Status Effect index in the script.
    Because I need to know the effect that the ability cast.
    ORK.Abilities.Get(id).??? e.g) UseCost.StatusEffect something like this
    Post edited by KESHYAS on
  • 1) That might be the case - I'll check it out.

    4) You can call a formula by script like this:
    float result = ORK.Formulas.Get(formulaID).Calculate(new FormulaCall(initialValue, user, target));
    formulaID is the ID/index of the formula, initialValue is the value you pass to the formula as a start value (the usual initial value setting), user and target are the combatants used for the calculation.


    New questions:

    1) No, that's not possible. The damage dealer activation requires an action (ability/item) to be passed, which is only avaialble in battle events coming from actual battle actions.
    I guess the easiest way would be to just disable the component via an Enable Component node, or to disable the whole game object or collider.

    2) You mean via script?
    ORK.Abilities.Get(abilityID).level[abilityLevel].active.targetChange[i].effect[j].effectID
    abilityID is the ID/index of the ability, abilityLevel the level you want to access (level 1 is index 0).
    Since target changes and effect casts allow adding multiple changes/casts, they're arrays, so i/j are the indexes in the arrays for target changes (i) and effect casts (j).
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • Update to #1 - next update will add an option to consume costs (which will also prevent use if it can't be used due to the use costs).
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
Sign In or Register to comment.