Summary
Casting a non-instant skill out of range followed by an instant-cast skill will cause the casting Demigod to become partially unresponsive until explicitly moved. This is a reproducible bug.
Demigods Affected
All.
Severity
Minor bug. (Annoying bug but it has workarounds and consistent behavior. It also does not cause crashes or long-term issues)
Tested On
These specs are provided for completeness. As far as I know, this bug is not specific to a platform, map, or Demigod. Further information is happily available on request.
- Version: DG MAIN 1.00.0114 on Windows XP
- Network: LAN, emulated over Hamachi. ~60 ping
- Map: Prison
- Demigods Used: 2 x Unclean Beast, 1 for each team
The game type was Conquest. The map's settings deviated from defaults in the following ways:
- Fog of War: Off
- Timeouts: Infinte
- Spawn Rate: Slow
- Death Penalty: Light
- Starting Level: 20
- Gold Income: High
- Starting Gold: Filthy Rich
Both Demigods purchased the following items:
- All Father's Ring
- Parasite Egg
Both Demigods trained the following skills:
- Venom Spit, 1 rank
- Bestial Wrath, all ranks (including Unrelenting Wrath)
How To Reproduce
For these steps, I will refer to the two Demigods as Alice and Bob.[1]
- Alice will be the attacking Demigod, performing all the steps.
- Bob will be the stationary Demigod. This Demigod simply provides Alice a stationary unit to attack.
Alice will use two skills. They must be:
- One non-instant, single-target offensive skill or item. Most single-target offensive skills, such as "Venom Spit", meet this requirement. Some items also qualify, such as "Universal Gadget".
- One instant, single-target offensive skill or item. No skills meet this requirement; "instant" skills always have a cast-time of 0.1 seconds. Items such as "Parasite Egg" and "Sludge Slinger" qualify.
For brevity, I'll refer to these skills as the Cast Skill and the Instant Skill, respectively.
To reproduce, follow these steps:
- Place both Demigods out of range of one another in an open area. "Out of range" is defined here as a distance where Alice must move towards Bob to cast either the Cast Skill orthe Instant Skill. "Open area" is defined as place where complicated pathing doesn't occur, and where neither Alice nor Bob is near a wall or corner.[2]
- Alice uses her Cast Skill, targeting Bob. Alice will begin moving towards Bob to get in range of him. It's important that no further move orders be given after this skill is used.[3]
- Once Alice reaches Bob and performs her Cast Skill, Alice uses her Instant Skill. The Instant Skill will not fire, and Alice will instead move such that she is adjacent to Bob. She will not be able to use any single-target ability until an explicit move order is given. Once a move order is given, Alice will be free to use any skill.
Expected Behavior
Alice's Instant Cast should be used on Bob. After this, Alice should be able to use any other skill on Bob, herself, or any other Demigod.
Observed Behavior
Alice is unable to use any single-target ability on Bob, herself or any other Demigods.
Workarounds & Fixes
Ordering Alice to explicitly move fixes the problem. An "explicit move" is one where Alice moves due to a click on the ground; an "implicit move" on the other hand is one where Alice is moving to get in range of a target. Alice is also unable to implicitly move, due to her being unable to cast.
Once Alice has explicitly moved, she works as intended.
Impact & Use Cases
This bug makes Parasite Egg (and all other instant-cast items) very awkward to use. For example, imagine the following situation:
- Alice wants to attack Bob with Parasite Egg. She moves towards Bob by using a non-instant skill (this distance may not be necessarily "far" since most abilities have a range that's significantly smaller than the viewable area of Alice's Demigod.
- Alice reaches Bob. She then uses Parasite Egg on Bob. Due to the bug above, this does not work. She probably won't notice Parasite Egg failed until she notices her ability did not fire.
- Alice, realizing why her ability won't fire, must now explicitly move her Demigod. She doesn't want to click randomly, so she now must move to click near her own character, just like she has to in order to correct the "click-to-move" bug.
- Alice's Demigod is now free, but, aside from the Cast Skill, hasn't performed any subsequent attacks on Bob. She then must use Parasite Egg again, find Bob's Demigod, and click that Demigod.
- Now that Parasite Egg is now hopefully used on Bob, Alice again must recast her skill.
Even if Alice is aware of the bug introduced by her sequence of events, she must move to be in range manually, after her first ability is used, then cast Parasite Egg. For a moving target, this can be extremely frustrating.
This sequence, for a player aware of this issue, resolves itself in a few seconds. For a player who is unaware of this bug, the time taken to correct this situation may be longer. In a serious fight, these seconds of lost time are likely critical and make Parasite Egg truly frustrating to use.
Comments
Relationship to the CTM ("click-to-move") bug[4]
This seems, at face-value, a variant or a consistent case of, the CTM bug. I don't believe this is a duplicate of that bug because this bug is consistently reproducible only with instant-cast abilities. The CTM bug seems, on the other hand, to occur even without instant-cast abilities.
At any rate, the symptoms of both are very similar. The only difference is that the CTM bug doesn't cause Alice to move towards Bob. Once she reaches her destination, however, the symptoms and workaround are the same.
Timing & distance are not factors in this bug
The omission of details, such as timing and distances, in the steps above was deliberate. Alice's initial distance from Bob does not matter, as long as she is out of range from him. She also does not have to use her Instant Cast at any particular time.
Furthermore, "spamming" either the Cast Skill or the Instant Skill will not affect the presentation of this bug. Redundant orders do not change the outcome.
Speculation on the cause
Instant Cast abilities appear to be capable of being used on-the-run. Demigod's action system does not seem to natively support custom actions (that is, not standard attacking) while moving. It's likely that, to work-around this deficiency, Instant Casts instead:
- Remove the current Move Order from the Demigod, replacing it with the Use "Instant Cast" order.
- The Demigod then will execute the "Instant Cast"
- The "Instant Cast" adds the original Move Order back to the queue of orders for the Demigod.
Problems would arise if there is no Move Order to move, which could be the case if the Demigod is stationary. In this case, Step 3 would add nothing useful to the queue of orders for the Demigod. Of course, if "Standby" is itself an order (a degenerate one of do-nothingness), then this problem would have to present itself in some other way: Presumably, the "Standby" order is removed, and the Demigod doesn't accept "Standby" orders since it assumes (incorrectly) that it will always have a "Standby" order at the bottom of its queue. In cases where it doesn't, subsequent orders can't commence since the position of the Demigod is undefined.[5]
Footnotes
1. Apologies to network people for shamelessly stealing their names!
2. Being against a wall may seem trivial, but it affects the behavior of the bug as described above. If Bob is against a wall, Alice's behavior is affected depending on the precise position of both Bob and Alice. The specific position results in either one of the three cases:
- Alice successfully casts her Instant Skill. This is the correct behavior. Occurs when Alice cannot move closer to Bob. Alice will not move any closer to Bob. We found this to occur when Bob was at the tip of one of the "spikes" on the sides of the "Prison" map.
- Alice does not successfully cast her Instant Skill. This is the expected behavior, due to the above bug. Occurs when Bob is at some "normal" place. Alice will move such that she is next to Bob. We found this to occur when Bob's position wasn't close enough to the wall.
- Alice becomes immobile. Alice cannot move until she casts some skill or item. This is essentially the inverse of the above bug. Occurs when Bob's position seems to be "invalid." Alice will such that she is either partially, or completely on top of, Bob. We found this to occur when Bob's position is directly against a wall.
While the above is described absolutely, we aren't entirely sure how to replicate these positions. Typically, we'd position ourselves near a wall, and "tweak" the position by attempting to move even closer in small increments. The bug appears more frequent when the character actually moves away from the wall as a result of these orders to move closer to it.
3. While no move orders may be given, Alice can attempt to use any other non-instant, single-target skill on Bob. However, that cast will be "lost"; Alice, upon reaching Bob, will cast the first skill that caused her to move in the first place. Any subsequent skills used will be ignored. The only exception are any items or skills that cause Alice to stop moving in her current direction.
4. The "click to move" bug, or CTM for short, is often discussed on these forums. It is an inconsistent, yet often reported, bug where the player will sometimes enter the state described above: Unable to cast abilities until explicitly moved.
5. Of course, this all depends on how the code is structured, hence the oh-so-appropriate title