Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make flight spells cost zero if the target can already fly #687

Closed
wants to merge 6 commits into from

Conversation

beholderface
Copy link
Contributor

Because I made a wisp capable of applying Anchorite's Flight on a regular basis, then realized that it would just be wasting media most of the time.
IMO the ideal solution to this would be to make the flight spells overwrite flight abilities applied by hex (but not any others), but I don't know how one would do that.

@object-Object
Copy link
Member

uh, wouldn't this just make it free to infinitely move Anchorite's around with you forever? that seems a bit broken

@beholderface
Copy link
Contributor Author

No, because it still doesn't overwrite any existing flight, and as such you'd need to exit the flight radius before it would do anything, thus making it have nonzero cost.

@walksanatora
Copy link
Contributor

honestly I feel like this could apply... but only to wayfarers
so that you could eg: deploy anchorites anywhere (and it is on you if they overlap (space or time wise)

@walksanatora
Copy link
Contributor

that or mabey instead of making it zero it would add time to existing wayfarers flight? (or mabey set time to that and not consume the whole ammount of media for time remaining?)

Copy link
Member

@object-Object object-Object left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly just reviewed based on code style. I'm still not 100% sure I like this solution though. It feels weird from a UX perspective to just silently fail (whether it takes any media or not).

@object-Object
Copy link
Member

object-Object commented Jun 23, 2024

If we want to make it overwrite an existing flight instead of setting the cost to 0 and silently failing, we could instead change this condition:

if (target.abilities.mayfly) {
// Don't accidentally clobber someone else's flight
// TODO make this a mishap?
return
}

to something like this:

  if (target.abilities.mayfly && IXplatAbstractions.INSTANCE.getFlight() == null) { 
     // Don't accidentally clobber someone else's non-Hex flight 
     // TODO make this a mishap? 
     return 
 } 

beholderface and others added 2 commits June 23, 2024 19:12
just a comment explaining the zero cost thing
@beholderface
Copy link
Contributor Author

I've dealt with the tweaks suggested in object's review, I haven't yet done anything to do with overriding flight since it's still under discussion

@gamma-delta
Copy link
Collaborator

I'd throw a mishap.

@object-Object
Copy link
Member

I think we decided on Discord that a good way to fix this would be to make both flight patterns mishap if the target can already fly, and also make a pattern to check if an entity can currently fly.

@gamma-delta
Copy link
Collaborator

We could also just have it waste the media ... design a more careful hex if you want infinite flight. I'm OK on just closing this and leaving the behavior as-is, we're so close to release

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

4 participants