Skip to content

NPC combat flinching not quite correct #804

@GregHib

Description

@GregHib

Should be something more like:

if (!attack()) { // out of combat range
            val recalculated = if (character.steps.destination == character.tile || Overlap.isUnder(character.tile, character.size, target.tile, target.size)) {
                stepOut()
                true
            } else {
                val wasEmpty = character.steps.isEmpty()
                character.steps.clearDestination()
                recalculate() && wasEmpty
            }
            super.tick()
            if (recalculated || attack()) {
                return
            }
            if (character is NPC && retreat(character)) {
                return
            }
            if (character.hasClock("movement_delay") || character.visuals.moved || getTarget() != null || character is NPC) {
                return
            }
            character.cantReach()
            if (character.mode == this) {
                character.mode = EmptyMode
            }
        } else if (character is NPC && retreat(character)) {
            return
        }

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions